今天学习了类的概述和写类的基本框架
在哔哩哔哩学习的这个老师的C++面向对象高级语言程序设计教程(118集全)讲的很不错(真的!!!),C语言也是在这个老师的带领下学习的
#include<iostream>
using namespace std;
//类的概述(了解)
//1.类的封装将数据和方法封装在一起,加以权限区分,用户只能通过公共方法访问私有数据
//2.定义一个结构体用来表示一个对象所包含的属性,函数用来表示一个对象所具有的行为,这样我们就可以表示出来一个十五,在C++语言中,行为和属性是封装的
//3.封装与结构体的区别:一个是将属性和变量和成一个整体,一个是给属性和函数增加访问权限
/*4.权限(权限只是针对类的外部,类的内部没有区分):
*private私有:类外部不可以直接访问私有数据,类内部可以访问
* protected保护:类外部不可以直接访问私有数据,类内部可以访问
* public公有:类外部可以访问,类内部可以访问
*/
//5.class关键字(类的定义,此时同结构体一样系统还没有为它分配空间)有分号!!!!
class Data1 {
private:
int a;
protected:
int b;
public:
int c;
void data_show(void) {
//类的内部可以直接访问,没有权限区分
cout << a << ", " << b << ", " << c << endl;
}
};//同结构体一样有分号!!!!!
void test01() {
//类是不占空间的,只有用类实例化对象(用类定义变量)的时候,系统为对象(变量)开辟空间
//定义类的时候尽量不要给成员赋值
//类中的数据成员拥有独立的空间
Data1 ob;//使用Data实例化一个对象名为ob的对象
//成员数据依赖于对象
//cout << "ob.a = " << ob.a << endl;//类的外部不可以访问私有和保护的对象
//ob1.data_show;//对象通过公共方法间接调用私有数据
}
//类的成员函数类中申明,类外定义
class Data2 {
//不加属性,默认为私有
int a;
public:
void setA(int v);
int getA(void);
};
void Data2::setA(int v) {
a = v;
}
int Data2::getA(void) {
return a;
}
void test02() {
Data2 ob;
ob.setA(100);
cout << "a = " << ob.getA() << endl;
}
int main(int argc,char *argv[]){
test02();
return 0;
}