将一个类声明为静态?

时间:2017-02-27 08:27:13

标签: c++ xcode visual-studio

背景

我目前正在通过edX | Intermediate C++课程。虽然该课程由Microsoft领导,但并未声明您需要使用其IDE Visual Studios才能成功完成。我只有一台Mac,所以我使用Xcode完成了入门课程,完全不用担心。

问题:

在中级课程的第一个模块中,它声明你可以将标题中的一个类声明为静态,如下所示:

// Math.h
// Header file for the Math class

#pragma once

// Math class definition
static class Math
{
    public:

    // given base and exponent, calculate value
    static int Math::pow(int base, int exp);

};

Xcode标记错误说:

'static'不允许在类型声明

根据先前提出的问题here,这是不可能的,但我不确定自2008年回答问题以来这是否已经改变,或者这可能是编译器特定的/ VS功能已经微软补充说,让人迷惑。

2 个答案:

答案 0 :(得分:2)

在此上下文中,

static无效。另一种选择是全静态成员,但类本身无效。

类似语法的使用将是:

static class Math
{

    public:

    // given base and exponent, calculate value
    static int Math::pow(int base, int exp);

} math;  // <---- note object

在这种情况下,对象mathstatic,而不是类本身。

答案 1 :(得分:1)

只需在课前删除static关键字。练习中的所有内容仍然会以同样的方式有意义。