1. 什么是类类型?
在C++中对象的类型称为类(class),用来表示一类具有共同属性和行为的类型。
在C++中一般是先声明一个类类型,然后用这个类类型去定义多个对象,所以,对象就是类类型的一个实例,或者说是类类型的一个实例化的变量。
类类型是抽象出来的,所以类类型跟C++中的其他类型一样,不占用内存空间,而对象就是类类型的实例,是真正的变量,所以是占用存储空间的。
2.类类型的声明:
成员变量、成员函数。
在 class 中,public、private、protected 可以出现多次,也没有先后顺序之分。
class CStudent //如果不定义是public还是private,那么默认就是private
{
public:
string name;
int num;
private:
char sex;
public:
int age; //class类中的name、num、sex、age通俗称为属性或成员变量
public:
void print_age() //class类中的print_age这个函数通俗称之为成员函数或行为或方法
{
cout << "age=" << age << endl;
}
};
最重要的:C++中对结构体、类在基于C语言中的重要扩充就是可以添加函数
class CStudent
{
public:
string name;
int num;
private:
char sex;
public:
int age; //class类中的name、num、sex、age通俗称为属性或成员变量
public: //class类中的print_age这个函数通俗称之为成员函数或行为或方法
void print_age() //最重要的:C++中对结构体、类在基于C语言中的重要扩充就是可以**添加函数**
{
cout << "age=" << age << endl;
}
};
以下是访问public方式的成员变量
#include"pch.h"
#include<iostream>
using namespace std;
struct Student //这是结构体的声明方式
{
string name;
int num;
char sex;
int age;
};
//class中可添加函数,而C语言中不行
class CStudent //如果不定义是public还是private,那么默认就是private
{
public:
string name;
int num;
private:
char sex;
public:
int age; //class类中的name、num、sex、age通俗称为属性或成员变量
public:
void print_age() //class类中的print_age这个函数通俗称之为成员函数或行为或方法
{
cout << "age=" << age << endl;
}
};
int main()
{
Student zhang_san;
zhang_san.age = 15;
CStudent li_si; //访问public方式的成员
li_si.age = 16;
/*li_si.sex = 'm';*/ //这个访问就是不被允许的
}
3.成员访问限定符:
C++针对类的成员,设定了三种方式的访问限定符:public、private、protected(用的不多)
①public:既可以被本类中的成员函数引用,也可以被类的作用域的其他函数所引用,即从类的外部是可以调用的;
②private:只能被本类的成员函数所引用,类外部不能调用(友元类可以,这个以后说明)
③protected:意为受保护的成员,不能被类外访问,这点类似private,但是可以被派生类的成员函数访问,有关派生类的说明,以后会讲解。
#include"pch.h"
#include<iostream>
using namespace std;
struct Student //这是结构体的声明方式
{
string name;
int num;
char sex;
int age;
};
//class中可添加函数,而C语言中不行
class CStudent //如果不定义是public还是private,那么默认就是private
{
public:
string name;
int num;
private:
char sex;
public:
int age; //class类中的name、num、sex、age通俗称为属性或成员变量
public:
void print_age() //class类中的print_age这个函数通俗称之为成员函数或行为或方法
{
cout << "age=" << age << endl;
}
};
private被本类的成员函数所引用的实例:
#include"pch.h"
#include<iostream>
using namespace std;
struct Student
{
string name;
int num;
char sex;
int age;
};
class CStudent
{
public:
string name;
int num;
private:
char sex;
public:
int age;
public:
void print_age()
{
cout << "age=" << age << endl;
}
};
class CNumber //private可被本类的成员函数所引用
{
private:
int get_max(int x, int y)
{
return x > y ? x : y;
}
public:
int get_max_num(int a, int b, int c)
{
int max_a_b = get_max(a, b);
return max_a_b > c ? max_a_b : c;
}
};
int main()
{
Student zhang_san;
zhang_san.age = 15;
CStudent li_si; //访问public方式的成员
li_si.age = 16;
/*li_si.sex = 'm';*/ //这个访问就是不被允许的
CNumber number;
cout<<number.get_max_num(2,5,8)<<endl;
}