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

我的代码哪里有问题

以下是有问题的代码

2.cpp

# include <iostream>

# include<stdlib.h>

# include<string>

# include "Teacher.h"

using namespace std;

int main(void)

{

Teacher t1("Merry", 12, 150);

cout << t1.getName() << " " << t1.getAge() << " " << t1.getMax() << endl;

system("pause");

return 0;

}

Teacher.h

#include<iostream>

#include<string>

using namespace std;

class Teacher

{

public:

Teacher(string name = "Jim",int age = 1,int m = 100);

void setName(string name);

string getName();

void setAge(int age);

int getAge();

private:

string m_strName;

int m_iAge;

const int m_iMax;

};

https://img1.sycdn.imooc.com//5b6502640001ffb307320165.jpg


正在回答

2 回答

你的私有成员都没有的得到有效的赋值传递,函数构造里面都是把值默认给了name,age,这些并不是你定义的变量,函数那些好像也没实现。Teacher(string name = "  默认",int age = 1, int max = 100){m_strName = name;m_iAge = age, m_iMax = max;}如果还有错,就把set和get函数实现了,比如int getAge(){return m_iAge;}      void setAge(int age){m_iAge = age;}类推,把name函数和max函数全部实现,建议简单的函数直接在Teacher.h文件里一并实现,你也可以重新创建一个.cpp但是在里面要导入.h头文件

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

慕运维9949243 提问者

感谢!
2018-08-08 回复 有任何疑惑可以回复我~

m_iMax 没有定义set 和 get

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

慕运维9949243 提问者

我定义了后又出现更多错误了,我写的代码和老师写的一样
2018-08-05 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

我的代码哪里有问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信