繁体   English   中英

在C ++中定义类的构造函数

[英]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=c89std=c++98的同义词。

g++ -std=c++11 -pedantic -Wall Test.cpp -o Test.o

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM