-
查看全部
-
我这样构造函数也可以运行,缺点在哪?
把有关teach定义和执行的部分分别换掉,依然可以执行
string Teacher::teach()
{
return "please teach...";
}
cout<<t.teach()<<endl;
查看全部 -
#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(){};
Student(string _name)
{
m_strName=_name;
}
Student(const Student& stu){};
~Student(){};
void setName(string);
string getName();
private:
string m_strName;
};
void Student::setName(string _name)
{
m_strName=_name;
}
string Student::getName()
{
return m_strName;
}
int main(void)
{
// 通过new方式实例化对象*stu
Student *stu = new Student;
// 更改对象的数据成员为“慕课网”
stu->setName("慕课网");
// 打印对象的数据成员
cout<<stu->getName()<<endl;
delete stu;
stu=NULL;
return 0;
}
查看全部 -
#include <iostream>
#include <stdlib.h>
#include <string>
#include "Teacher.h"
using namespace std;
/* Teacher 类
定义无参构造函数
定义有参构造函数
数据:名
年龄
成员函数
数据成员的封装函数
*/
int main(void)
{
Teacher t1;
Teacher t2("merry",15);
Teacher t3("James");
cout << t1.getName() << " " << t1.getAge() << endl;
cout << t2.getName() << " " << t2.getAge() << endl;
cout << t3.getName() << " " << t3.getAge() << endl;
system("pause");
return 0;
}
#include "Teacher.h"
#include <iostream>
Teacher::Teacher()
{
m_strName = "Jim";
m_iAge = 5;
cout << "Teacher()" << endl;
}
Teacher::Teacher(string _name , int _age)
{
m_strName = _name;
m_iAge = _age;
cout << " Teacher(string _name , int _age)" << endl;
}
void Teacher::setName(string _name)
{
m_strName = _name;
}
string Teacher::getName()
{
return m_strName;
}
void Teacher::setAge(int _age)
{
m_iAge = _age;
}
int Teacher::getAge()
{
return m_iAge;
}
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
/*
定义一个Student类,含有如下信息;
1.姓名:name
2.性别:gender
3.学分(只读):score
4.学习:study
*/
class Teacher
{
public:
Teacher();
Teacher(string _name, int _age = 20);
void setName(string _name);
string getName();
void setAge(int _age);
int getAge();
private:
string m_strName;
int m_iAge;
};
查看全部 -
C++内存分区:
栈区:由系统去分配,如定义的局部变量等
堆区:通过 new 去分配
全局区:存全局变量和静态变量
常量区:存字符串和常量
代码区:存编译后的二进制代码
查看全部 -
对象实例化:
栈实例: 类名 对象名;
调用属性:对象名.属性
调用方法:对象.方法()
堆实例:类名 *名 =new 类名()
调用属性:名->属性名
调用方法:名->方法名()
查看全部 -
析构函数有系统自动生成,在对象销毁前调用,无参数无返回值,不可以重载
查看全部 -
析构函数不可以加参数
查看全部 -
拷贝构造函数不可以重载
查看全部 -
m就是member
查看全部 -
析构函数
查看全部 -
栈中对象 退出作用域即销毁,不需要调用delete,由系统自动调用析构函数。 堆中对象 不再需要使用时,必须调用delete来执行析构和销毁对象,否则对象将一直存在。
查看全部 -
从堆实例化对象
查看全部 -
从栈实例化对象
查看全部 -
类的定义
查看全部
举报