目录
1.1.2struct和class的区别
1.1.3成员属性设置为私有
1.2.1构造函数和析构函数
1.2.2构造函数的分类及调用
1.2.3拷贝函数的使用
1.2.4构造函数的调用规则
1.2.5浅拷贝和深拷贝
1.2.6初始化
1.2.8静态成员变量和静态成员函数
1.3.1成员变量和成员函数是分开存储的
1.3.2this指针
1.3.3空指针访问成员函数
1.3.4const 修饰成员函数
代码中避免野指针
类:由数据成员定义和成员函数定义构成的一段独立代码
对象:用类定义的存储单元(定义:1.student zhang wang;2.class student {...}zhang,wang;3.class{...}zhang wang;第三个不建议)
内置函数/内联函数(inline)用空间换时间,用函数体替换调用。inline 只有在于代码体在一起是才有用(一般不提倡)
eg:void Foo(int x, int y);
inline void Foo(int x, int y) // inline 与函数定义体放在一起
面向对象的四大特征:抽象、封装、继承、多态
1.1封装
意义一:设计类的时候,属性和行为写在一起,表现事物
类中的属性和行为被统称为成员
属性---被称为成员属性或者成员变量
行为---被称为成员函数或者成员方法
案例:设计一个圆类,来设计圆的周长。
实例化:通过一个类来创建一个对象的过程
#include<iostream>
using namespace std;
//周长公式:C=2*PI*r
const double PI = 3.14;
//class代表设计一个类,类后面就是类名
class yuan
{
//访问权限(公共权限)
public:
//属性(通常为变量)--半径
int r;
//行为(通常用函数)--获取圆的周长
double ZC()
{
return 2 * PI*r;
}
};
//以上为类的声明语句
int main()
{
//通过圆类,创建一个具体的圆(对象)
//类的定义语句,定义了一个名叫c1的对象
yuan c1;
yuan *pc1=c1;
//访问对象成员
c1.r//“.”读作谁的谁,该语句等价为pc1->c1,“->”读作;谁的指向对象的成员
//给圆进行赋值
c1.r = 10;
cout << "c1圆的周长为:" <<c1.ZC()<< endl;
system("pause");
return 0;
}
案例:设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号。(通过行为给属性赋值)
#include<iostream>
using namespace std;
#include<string>
class student
{
//权限:
public:
//属性--姓名--学号
string name;
int id;
//行为--显示学生的姓名和学号
void show()
{
cout << "学号:" << id << "姓名:" << name << endl;
}
//通过行为给属性赋值
void setname(string n)
{
name = n;
}
void setid(int i)
{
id = i;
}
};
int main()
{
//通过类,创建一个具体的学生对象
student s1;
//s1.id = 21;
s1.setid(21);
//s1.name = "张三";
s1.setname("张三");
s1.show();
system("pause");
return 0;
}
在类外定义成员函数:void student::show(){...}(::--->称为预运算符,叫做student的show函数)不建议在类外定义!!!
意义二:在设计类时,可以把属性和行为放在不同的权限下,加以控制
访问权限有三种:
- public--公共权限(成员 类内可以访问,类外也可以访问)
- protected--保护权限(成员 类内可以访问,类外不可以访问) 儿子可以访问父亲中保护的内容
- private--私有权限(成员 类内可以访问,类外不可以访问) 儿子不可以访问父亲中保护的内容
class person
{
public:
string name;
//保护权限--车子
protected:
string car;
//私有权限--银行密码
private:
int password;
//类内访问
public:
void text()
{
name = "张三";
car = "拖拉机";
password = 12345;
}
};
int main()
{
//类外访问
person p1;
p1.name = "李四";
//p1.password;----错,私有类外不可以访问
system("pause");
return 0;
}
1.1.2struct和class的区别
在c++中,二者的唯一区别:
默认的访问权限不同
- struct--默认权限为公有
- class--默认权限为私有
1.1.3成员属性设置为私有
1、可以自己控制读写权限。
2、对于

最低0.47元/天 解锁文章
1014

被折叠的 条评论
为什么被折叠?



