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

把问题交给人民、、为什么没输出??

#include <iostream>
#include <string>
using namespace std;
/**
 * 定义类:Student
 * 数据成员:m_strName
 * 无参构造函数:Student()
 * 有参构造函数:Student(string _name)
 * 拷贝构造函数:Student(const Student& stu)
 * 析构函数:~Student()
 * 数据成员函数:setName(string _name)、getName()
 */
class Student
{
    public:
    Student()
    {
        _name="";
    }
    Student(string _name)
    {
        _name = _name;
    }
    Student(const Student&stu)
    {
        cout<<"Student(const Student&stu)"<<endl;
    };
    ~Student(){};
    void setName(string _name)
    {
        _name=_name;
    }
    string getName()
    {
        return _name;
    }
    private:
    string _name;
};


int main(void)
{
    // 通过new方式实例化对象*stu
    Student *stu = new Student;
    // 更改对象的数据成员为“慕课网”
	stu->setName("mukewang");
    // 打印对象的数据成员
	cout<<stu->getName()<<endl;
    delete stu;
    stu=NULL;
	return 0;
}


正在回答

4 回答

计算机午饭分辨你的_name=_name 是形参赋值给实参  还是实参赋值给形参   完全一样 要怎么分辨?人可以看懂  但是计算机就不能了

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

define_ray 提问者

好吧,是在所有的情况都无法识别(形参和实参不能同名)吗??
2015-12-09 回复 有任何疑惑可以回复我~
#2

流浪_老 回复 define_ray 提问者

不能同名 就算某些情况下你同名了 对程序也许没什么影响 但是这是一个不好的习惯 你学到this 指针这里 你就能 够了解 这不仅是同名的问题
2015-12-09 回复 有任何疑惑可以回复我~
#3

define_ray 提问者

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

#include <iostream>

#include <string>

using namespace std;



class Student

{

 public:

   Student(){m_strName="";}

   Student(string _name){m_strName=_name;}

   Student(const Student& stu){};

   ~Student(){};

  void setName(string _name){m_strName=_name;};

  string getName(){return m_strName;};

 private:

   string m_strName;

};



int main(void)

{

    // 通过new方式实例化对象*stu

    Student *stu = new Student;

    

    // 更改对象的数据成员为“慕课网”

stu->setName("慕课网");

    // 打印对象的数据成员

cout << stu->getName() << endl;

    

    delete stu;

    stu=NULL;

return 0;

}


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

你的setName函数错误 计算机无法识别二个名字一样的_name   

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

define_ray 提问者

一个是形参一个是实参怎么会冲突??
2015-12-09 回复 有任何疑惑可以回复我~

#include <iostream>

#include <string>

using namespace std;

/**

 * 定义类:Student

 * 数据成员:m_strName

 * 无参构造函数:Student()

 * 有参构造函数:Student(string _name)

 * 拷贝构造函数:Student(const Student& stu)

 * 析构函数:~Student()

 * 数据成员函数:setName(string _name)、getName()

 */

class Student

{

    public:

    Student()

    {

        _name="";

    }

    Student(string _name)

    {

        _name = _name;

    }

    Student(const Student&stu)

    {

        cout<<"Student(const Student&stu)"<<endl;

    };

    ~Student(){};

    void setName(string name)

    {

        _name=name;

    }

    string getName()

    {

        return _name;

    }

    private:

    string _name;

};

 

 

int main(void)

{

    // 通过new方式实例化对象*stu

    Student *stu = new Student;

    // 更改对象的数据成员为“慕课网”

    stu->setName("mukewang");

    // 打印对象的数据成员

    cout<<stu->getName()<<endl;

    delete stu;

    stu=NULL;

    return 0;

}


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

举报

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

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

进入课程

把问题交给人民、、为什么没输出??

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