-
#include <iostream>
#include <string>
using namespace std;
/**
* 定义类:Student
* 数据成员:m_strName
* 数据成员的封装函数:setName()、getName()
*/
class Student
{
public:
// 定义数据成员封装函数setName()
void setName( string strName)
{ m_strName=strName;}
// 定义数据成员封装函数getName()
string getName()
{ return m_strName;}
//定义Student类私有数据成员m_strName
private:
string m_strName;
};
int main()
{
// 使用new关键字,实例化对象
Student *str = new Student();
// 设置对象的数据成员
str->setName("慕课网");
// 使用cout打印对象str的数据成员
// 将对象str的内存释放,并将其置空
cout<<str->getName()<<endl;
delete str;
// str=Null;
return 0;
}
查看全部 -
从堆实例化对象,使用之后一定要释放内存,也就是要delete掉
查看全部 -
从栈中实例化对象,使用之后系统会自动将它占用的内存回收掉
查看全部 -
当没有自定义拷贝构造函数时,会自动生成拷贝构造函数。自定义拷贝构造函数 Teacher(const Teacher & t) 拷贝构造函数也可以接初始化列表参数。 Teacher t2=t1; Teacher t3(t1); 调用函数传递Teacher类型参数时fun(t1) 以上三种方式都会调用拷贝构造函数。查看全部
-
Teacher::Teacher(string name, int age,int max):m_strName(name),m_iAge(age),m_iMax(max) { cout<<endl; } 其中m_iMax为const int类型,必须通过初始化列表进行初始化。查看全部
-
初始化列表只能用于构造函数,且先于构造函数执行,可以同时初始化多个成员变量。 当成员变量存在const常量时,必须用初始化列表进行初始化,不能放在构造函数中进行初始化,否则编译器会报错。查看全部
-
五个区的概念:栈区,堆区,常量区,静态区,代码区。 构造函数的特点: 与类名同名, 无返回值, 可以重载, 如果没有构造函数时,会自动生成默认构造函数。查看全部
-
分文件类外定义时,要使用类时,只需要引入类的.h文件即可。查看全部
-
类内定义的成员函数在编译时会被编译为内联函数inline。 类外定义分为同文件类外定义和分文件类外定义,大型程序里一般采用分文件类外定义,定义类外成员函数用 类名::成员函数(){} ,这种形式。查看全部
-
char[]数组类型可以表示字符串,但是操作字符串就得用strlen()、strcat()等函数,如果用string类型,就可以以类对象的形式操作字符串对象实例。 前提需要引入#include <string>,同在std命名空间下。查看全部
-
栈实例化对象 TV tv; tv.show(); 堆实例化对象 TV *p=new TV(); tv->show(); delete p; p=NULL;查看全部
-
初始化列表只能用在构造函数后面,不能用在别的地方。同时初始化列表时,先对数据成员进行初始化,再进行构造函数实例化
查看全部 -
string 类型
查看全部 -
string的常用操作
查看全部 -
string s4(n,'c');初始化字符‘c’的n个副本
查看全部
举报