C++类的实例化加括号和不加括号的区别

时间:2025-03-07 18:08:10

2020年1月7日 周四 天气晴 【不悲叹过去,不荒废现在,不惧怕未来】


直接说结论吧:

  1. 类本身带有无参构造函数,则实例化时,两种方法成员变量都会初始化
class Test
{
private:
	int m_Int;
	int *m_pInt;
 
public:
	Test(){}
};
 
int main()
{
	Test *t1 = new Test; //t1成员变量会初始化
	Test *t2 = new Test(); //t2成员变量会初始化
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  1. 类本身不带有无参构造函数,则实例化时,只有带括号的实例成员变量会初始化
class Test
{
private:
	int m_Int;
	int *m_pInt;
 
public:
	//Test(){}
};
 
int main()
{
	Test *t1 = new Test; //t1成员变量不会初始化
	Test *t2 = new Test(); //t2成员变量会初始化
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15