定义内联默认构造函数C ++

时间:2012-01-24 23:50:29

标签: c++

public:
A();         
A(int B){*C = B - 1;};
private:
int *C;

我相信这是如何正确调用两个默认构造函数,但visual studio给了我错误。这段代码有什么问题?

2 个答案:

答案 0 :(得分:5)

这个编译。它与您的计划有何不同?

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
};

答案 1 :(得分:2)

一个构造函数确实是默认构造函数。然而,另一个“构造函数”必然更多地作为析构函数操作,因为它通常会访问不可访问的内存,而后者通常会“崩溃”程序。您应该查找“成员初始化列表”。