[英]Defining a constructor of a class in C++
我目前正在阅读Bjarne Stroustrup的“ C ++编程语言(第4版)”,并试图了解以下语法错误还是编译错误 。
根据以下代码片段(摘自本书),我的构造函数应如下所示:
class Vector {
public:
Vector(int s): elem{new double[s]}, sz{s} {} // Construct a Vector
...
private:
double* elem; // Pointer to the elements
int sz; // The number of elements
};
但是,除非按照错误消息的建议更改以下内容,否则无法编译它:
Vector(int s): elem(new double[s]), sz(s) {}
注意:我通过Mac Terminal使用以下命令编译了C ++代码:
g++ -ansi -pedantic -Wall Test.cpp -o Test.o
先感谢您。
可能您需要做的就是为C ++ 11编译它:
g++ -std=c++11 -ansi -pedantic -Wall Test.cpp -o Test.o
正如@molbdnilo在注释中指出的那样,从命令中删除-ansi
,因为这是std=c89
或std=c++98
的同义词。
g++ -std=c++11 -pedantic -Wall Test.cpp -o Test.o
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.