为了账号安全,请及时绑定邮箱和手机立即绑定

构造函数初始化问题

为什么我在编译时 , Student st1可以完成初始化 而Student st1()却不能初始化呢?

#include<iostream>

#include<string>

#include<cstdlib>

using namespace std;

class Teacher {

public:

Teacher() {

m_strName = "jame";

m_iAge = 16;

cout << "已经成功了!" << endl;

}

Teacher(string name, int age) {

m_strName = name;

m_iAge = age;

cout << "哈哈 你错了吧!" << endl;

}

string getName() {

return m_strName;

};

int getAge() {

return m_iAge;

};

private:

string m_strName;

int m_iAge;

 };


int main(void) {

Teacher st1;

//Teacher st2();\Teacher("jame",16);

Teacher *p=NULL;

p = new Teacher();

cout << p->getName() << " " << p->getAge() << endl;

delete p;

p = NULL;

system("pause");

return 0;

}


正在回答

3 回答

实例化对象 ①是从栈中实例化   ②是从堆中实例化   从堆中实例化一个对象时才会要()

4 回复 有任何疑惑可以回复我~
#1

qq_孤独小猪奋斗_0 提问者

非常感谢!
2017-09-05 回复 有任何疑惑可以回复我~

明明是Teacher 

0 回复 有任何疑惑可以回复我~

Student stu=new Student();

或者Student stu;

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103381    人
  • 解答问题       732    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

构造函数初始化问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号