类的引入
在C语言中结构体只能用来定义变量,在C++中 ,结构体中不仅可以用来定义变量,也可以用来定义函数.
struct Student{
//成员函数
void SetStudentInfo(const char* name, const char* gender, int age){
strcpy(_name, name);
strcpy(_gender, gender);
_age = age;
}
void PrintStudentInfo(){
cout << _name << " " << _gender << " " << _age << endl;
}
//成员变量
char _name[20];
char _gender[3];
int _age;
};
这个就可以成为类,但是在C++中,更喜欢用class来代替struct
里面的内容是没有区别的.
class Student{};
类的定义
class className
{
// 类体:由成员函数和成员变量组成
}; // 一定要注意后面的分号
class为定义类的关键字
classname 为类的名字
{} 为主体
类的访问
- public修饰的成员在类外可以直接被访问
- protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
- 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
- class的默认访问权限为private,struct为public
struct和class的区别
在C++中struct可以当做结构体来使用,也可以用来定义类,和class定义的类是一样的.
只不过,struct默认访问的是public ,class 默认访问的是private
struct Student{
private: //私有
public: //公有
protected: //保护
//在下面写入具体的内容
};
void test1(){
Student stu;
//类成员的使用,不需要通过作用域限定符的方式使用
//通过"."的方式,如果是指针,通过"->"的形式
stu.SetStudentInfo("hu", "男", 20);
stu.PrintStudentInfo();
cout << stu._gender << endl;
}
上面的是访问方式,运用"."来使用.
计算类对象的大小
class A{
public:
int _a;
};
//class 默认访问权限为private
class B{
public:
int fun1(int a, int b){
return a + b;
}
public:
int _b;
};
class C{
public:
int fun2(int a, int b){
return a + b;
}
};
class D{};
void test(){
//定义一个类类型的变量:称为类的实例化
//实例化的变量称为类的对象
A oa; //oa是类A实例化的一个对象
oa._a = 10;
B ob;
//ob._b = 5;
cout << sizeof(A) << endl; //计算出类的字节大小
cout << sizeof(B) << endl;
cout << sizeof(C) << endl;
cout << sizeof(D) << endl;
}
这一部分是对于类与对象的基础引入,大家多看看,多敲敲代码就会了!!!加油!!!