这两者之间究竟有什么区别: 两者都是整数 int x;
x(0)
和
int x = 0
它们是否相同,如果不是为什么?
编辑:
处理继承问题。你有这样的东西:
class A{
protected:
int x;
public:
A() : x(0) {};
void show {cout << "x" << x; }
};
Class B {
protected:
int y;
public:
B() {x = 0; y = 2; }
void show {cout << "x" << x << "y" << y; }
};
x(0)
合法吗?请澄清。
答案 0 :(得分:1)
没有区别,也在C ++ 0X中:X{0}
从技术上讲,它们不是类型,它们是初始化或构造。
int x = 0将调用int(0),因此它是构造函数调用而不是赋值。