C++学习札记:第30课 类的声明

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值