【发布时间】:2010-09-13 20:18:21
【问题描述】:
class a
{
protected:
const int _ID;
public:
a::a(int id){};
a::top(int num);
};
class b : public a
{
static int ok;
b::b(int id):a(id){};
a::top(ok);
}
int main()
{
int t=5;
b opj=b(t);
}
首先为什么我得到这个编译错误,只有当我删除 const 时才能解决
非静态常量成员‘const int Student::_ID’,不能使用默认赋值运算符 - 从'void std::vector::_M_insert_aux(__gnu_cxx::__normal_iterator, const _Tp&) [with _Tp = Student, _Alloc = std::allocator]'实例化
秒
我有另一个问题
对 b::ok 的未定义引用
【问题讨论】:
-
请保持体面,并以易于阅读的方式格式化您的源代码。这也适用于问题文本本身。
-
@Jim Brissom:让 Mati 松懈一些——看起来他/她是一个新用户。更好的是,帮助进行格式化,以便他/她可以看到它。 @mati:这是格式参考:[stackoverflow.com/editing-help
-
@Otaku 不,他只是不关心真正的答案,或者他只是取笑 SO 用户或两者兼而有之。看看他的其他问题。我不会浪费时间教巨魔如何按下“格式化”按钮。
-
@Johannes Schaub - litb:我不知道他如此恶意。我浏览了他的其他线程,除了一个母语不是英语的人和一个还不真正了解 SO 来龙去脉的人之外,什么都没有注意到。你似乎比我更了解这里的邪恶......
-
首先谢谢大家的回答其次我无法理解吉姆为什么你认为我试图取笑你?最后我如何标记问题已解决?