SX_c++中类的运用_13

C++类特点:

c++ 中类与JAVA中的类有些不同,c++中静态static变量只能在类内定义,并在类外初始化,静态变量只有一个副本,也是就是说所有的实例对象访问到的都是类内同一个静态变量

c++ 中 ::为解析符号,可以用它访问类内的函数和变量,:一般在一个类继承另一个类使用

例子:

#include <stdio.h>

class A{
	private:
		static int temp;	// 静态成员要在类外面初始化、可用类直接调用、所有类共享一个值 
	public:
		int omg = 115200;	//  非静态得用具体对象才能调用 
		static A* a[3];		// A类型指针
		 
		void print(){
			printf("temp的值为:%d\n", temp);
		}
		void myprintf(){
			printf("myprintf\n");
		}
		void setvalue(int value){
			temp = value;
		}
		A();		// 构造函数 
};

int A :: temp = 12;	// 初始化temp
A* A :: a[3] = {NULL, NULL, NULL};  // 空指针 
 
A :: A(){		// 初始化构造函数 
	setvalue(1);
	printf("构造函数成功运行\n"); 
}

int main(){
	A :: a[0]->print();
    new A();
	A :: a[1]->print();
}

int A :: temp = 12;	// 初始化temp

A :: temp 就是解析出A内的temp变量最左边的int是指明了这个变量的类型

A* A :: a[3] = {NULL, NULL, NULL};  // 空指针 

A :: a[3]是解析出来A内的a[3]变量最左边的A*指的是a[3]为A类型指针,NULL指的是将其设置为空指针

A :: a[0]->print();
new A();
A :: a[1]->print();

A :: a[3]是解析出来A内的a[3]变量最左边的A*指的是a[3]为A类型指针,NULL指的是将其设置为空指针,空指针能访问内部函数和静态成员变量new A()的目的主要是调用构造函数,初始化静态成员的值,静态变量的值只有唯一副本所有对象调用的结果都是一致

在这里插入图片描述

继承:

#include <stdio.h>

class A{
	private:
		static int temp;	// 静态成员要在类外面初始化、可用类直接调用、所有类共享一个值 
	public:
		int omg = 115200;	//  非静态得用具体对象才能调用 
		static A* a[3];		// A类型指针
		 
		void print(){
			printf("temp的值为:%d\n", temp);
		}
		void myprintf(){
			printf("myprintf\n");
		}
		void setvalue(int value){
			temp = value;
		}
		A();		// 构造函数 
};

int A :: temp = 12;	// 初始化temp
A* A :: a[3] = {NULL, NULL, NULL};  // 空指针 
 
A :: A(){		// 初始化构造函数 
	setvalue(1);
	printf("构造函数成功运行\n"); 
}


class B : public A{
	public:
		int bmbr = 12;
		void bprint(){
			printf("这里里是b的printf\n");
		}
}; 

int main(){
	 B* bb;
	 bb->bprint();
	 bb->print();
}

继承一般是公有继承,这样子类可以继承父类所有公共函数与变量,指针访问成员用->实例对象访问成员用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值