CPP学习笔记
1、 类和对象的特性
对象具有静态特征和动态特征 ,分别称为属性与行为。外界想对象发送信息称为“消息”。对象一般由一组属性与行为构成,在CPP种每一个对象都是由数据与函数构成。
数据体现了其属性,而函数是用来对数据进行操作以实现某些功能。
2、CPP中的类与对象的关系
CPP中的对象的类型是类(class)。类代表了某一批对象的共性与特征,类是对象的抽象,二对象是类的具体实例(instance)。
3、声明类的类型
class student
{
private:
int num;
char name[20];
char sex;//数据成员
public:
void display()//这是成员函数
{
cout<<"num:"<<num<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"name:"<<name<<endl;//操作语句
}
};
student stud1,stud2;
总结下
class name
{
private:
私有的数据和成员函数;
public:
公用的数据与成员函数;
};
其中public和private被成为成员访问限定符。被声明为private的成员只能被本类的成员函数引用,类外不能调用(友元类除外),而public既可以被本类的成员函数引用也可被类的作用域内的其他函数引用。
也就是说你只能利用类内函数操作的private内的数据
4、定义对象的方法
1、先声明类型,然后再定义对象
(1)class 类名 对象名;
class student stud1,stud2;
(2)类名 对象名;
student stud1,stud2;
2、在声明类的同时定义对象
class student
{
public:
void display()//这是成员函数
{
cout<<"num:"<<num<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"name:"<<name<<endl;//操作语句
}
private:
int num;
char name[20];
char sex;//数据成员
}stud1,stud2; //定义了两个student类的对象
3、不出现类名,直接定义对象
class
{private:
{}
public:
{}
}stud1,stud2; //定义了两个无名类的对象
4、类和结构体类型的异同
struct student
{
private:
int num;
char name[20];
char sex;//数据成员
public:
void display()//这是成员函数
{
cout<<"num:"<<num<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"name:"<<name<<endl;//操作语句
}
};
student stud1,stud2;
其实完全可以用struct声明一个类 cpp内保存了这种方式
区别是 用struct声明的类如果对其成员不作private或public的声明,系统将其默认为public,而用class则相反
4、在类外定义成员函数
成员函数简单说明
struct student
{
private:
int num;
char name[20];
char sex;//数据成员
public:
void display()//这是成员函数声明
};
void student:: display()//这是类外成员函数
{
cout<<"num:"<<num<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"name:"<<name<<endl;//操作语句
}
student stud1,stud2;
5、内置成员函数(inline成员函数)
如果类体种定义的成员函数种不包括循环等控制结构,CPP系统会自动地对它们自动作为内置函数进行处理。但是如果是在类外声明成员函数
6、成员的储存方式(inline成员函数)
一个类对象所占空间大小只取决于该对象中的数据成员所占的空间,与成员函数无关不论是否使用inline,inline只与程序的执行效率,而与成员函数是否占用存储空间无关
7、 通过对象名和成员运算符访问对象中的成员
若要访问公用数据成员,则语法为 对象名.成员名
8、类和对象的简单应用
#include<iostream>
using namespace std;
class rectangle
{
public: //对外接口
int input(); // 将数值转入成员数据种
int volume();//完成计算
private:
int length;
int width;
int height;
};
int main()
{
rectangle t1;// 定义一个类的对象
t1.input();
t1.volume();
rectangle t2;
t2.input();
t2.volume();
rectangle t3;
t3.input();
t3.volume();
}
int rectangle::volume()//计算函数 类外定义
{
int t;
t = length * width * height;
cout << "volume is " << t << endl;
cout << "Done" << endl;
return 0;
}
int rectangle::input() //输入函数 类外定义
{
cin >> length;
cin >> width;
cin >> height;
return 0;
}