内容
类
一.类与面向对象的关系
面向对象是一种编程思想,而类是一种语法。
而这个语法是实现这个编程思想的基础
二.定义
是具有相同属性和行为的对象的集合
解释:比如人是一个类,相同属性就是能直立行走,行为就是能做饭,对象就是每个人,比如小明。
学完类之后,我们就知道这个相同属性大概指的是类里面的数据成员,行为就是函数成员。
三.使用形式
class cPeople//class加上类的名字
{
public://是访问修饰符,下面会解释
int age;//数据成员
void fun()//函数成员
{
cout<<age<<endl;
}
};//注意这里有分号
int main()
{
cPeople cpeople;
cpeople.age = 13;
cpeople.fun();
system("pause");
return 0;
}
通过上面使用以及已有知识我们可以得到如下结论
结构体是一个特殊的类,类的调用也和结构体基本完全一样。
甚至是指针操作
cPeople*p = new cPeople;
p->age = 14;
p->fun();
四.访问修饰符
1.public
使类内成员对外均可见。大体表现为,自定义函数可见,以外的类可见,主函数可见。c++的结构体默认是public
2.private
只能使类内成员可见,即私有的。不加访问修饰符时的类就默认是private
3.protected
使类内及子类(继承)可见,即受保护的。
继承在后面的知识点中会讲到
class cPeople
{
private:
int age;
void fun()
{
cout<<age<<endl;
}
};
int main()
{
cPeople cpeople;
cpeople.age = 13;
cpeople.fun();
system("pause");
return 0;
}
比如这段代码就会报错,因为这里都用private修饰了,所以age以及fun都不能在外界被访问到
五.友元
友元是针对protected和private的,可以降低类的封装强度(这句话纯属个人看法),关键字是friend
使用示例1:友元函数
class cPeople
{
private:
int age;
void fun()
{
cout<<age<<endl;
}
friend void fun1();//这里声明fun1函数是友元函数
};
void fun1()
{
cPeople cpeople;
cpeople.age = 10;//这里就可以访问了
cpeople.fun();
}
int main()
{
fun1();
system("pause");
return 0;
}
这样就不会报错了。
也就是说:
类内成员对于友元函数相当于public
使用示例2:友元类
class cPeople
{
private:
void fun()
{
cout<<10<<endl;
}
friend class cPeople1;//声明这里是友元类
};
class cPeople1
{
cPeople cpeople;
void fun1()
{
cpeople.fun();//这里就可以访问了
}
};
这样就不会报错了。
也就是说:
类内成员对于友元类相当于public
六.注意点
1:使用保护成员有两种方法:①继承 ②友元。
使用私有成员只有一种方法:友元。
2:友元破坏了类的封装性,能不用就不用
3:还可以通过接口函数返回私有成员的值或直接设私有成员的值(接口函数暂时不需掌握)
本文深入解析C++中类的概念,包括类与面向对象的关系、定义、使用形式、访问修饰符、友元以及注意事项。通过实例代码演示类的创建与调用,探讨public、private和protected的区别,以及如何通过友元降低封装强度。

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



