背景
我目前正在通过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功能已经微软补充说,让人迷惑。
答案 0 :(得分:2)
static
无效。另一种选择是全静态成员,但类本身无效。
类似语法的使用将是:
static class Math
{
public:
// given base and exponent, calculate value
static int Math::pow(int base, int exp);
} math; // <---- note object
在这种情况下,对象math
是static
,而不是类本身。
答案 1 :(得分:1)
只需在课前删除static关键字。练习中的所有内容仍然会以同样的方式有意义。