-7
public:
A();
A(int B){*C = B - 1;};
private:
int *C;
我相信这是如何正确调用两个默认的构造函数,但Visual Studio给我的错误。这段代码有什么问题?定义一个内联的默认构造函数C++
public:
A();
A(int B){*C = B - 1;};
private:
int *C;
我相信这是如何正确调用两个默认的构造函数,但Visual Studio给我的错误。这段代码有什么问题?定义一个内联的默认构造函数C++
一个构造函数确实是默认构造函数。另一个“构造函数”必然会更多地作为析构函数运行,但是,因为它通常会访问不可访问的内存,从而通常会导致程序“崩溃”。你应该查找“成员初始值列表”。
编译。它与你的程序有什么不同?
class A {
public:
A() {} // Define (not merely declare) default constructor
A(int B) { C = B - 1; } // Note: don't use uninitialized pointer
private:
int C; // Note: not a pointer
};
什么是错误?在函数的'}后面不应该有';'。 –
你的错误是什么?如果你希望我们帮助你,你应该更具体一些。 加上在没有参数的构造函数旁边添加{},因为它没有定义。 – fdh
你至少失去了A类{'和'};'。请发布一个完整的最小程序和它产生的错误消息。 http://sscce.org/。 –