C++学习

#学习自用#

c++中的类与c中的结构体类似,都是为了方便变量的管理,c++中通过class创新的变量类型。

class playerinfo
{
public:
     int x,y;
     int speed;
};

创建的末尾记得加分号。public意味着可以在类之外的任何地方访问类中的变量,如果c++中不声明则默认是private,在main函数中无法访问,这也是类与结构体的区别,类中的变量如果不声明默认private,在其他函数中无法调用,而结构体内的变量默认public。

方法

类中内置的函数称为方法,处于类之外的函数要对类中的变量,需要传入类的指针,而方法位于类的内部,则不需要传指针。

#include<iostream>
using namespace std;
class playerinfo
{
	char name;

     int x,y;
     int speed;
public:
	 void move(int a,int b)
	{
		x=a;
		y=b;
	}
};

void main()
{
	playerinfo p;
	p.move(2,3);
	cin.get();

}

调试过程中,在内存中查看p.x,p.y可知,方法move改变了类中private的部分。

静态

在同一项目下两个.cpp文件中,如果全局变量中出现同一个变量名,系统就会报错,这时将其中一个文件中的变量定义前加上static,这时就可以通过编译。使用static后这个变量只会在翻译单元的作用域内寻找这个变量的定义,所以不会发生重定义。

如果想使用另一个文件下的全局变量,可使用extern,这时连接器就会在作用域外去寻找这个变量的定义。

结构体中的静态

static可以让结构体(或者类)中的变量变成只有一个实例,也就是不管构建几个结构体变量,其中的成员(本例中的x)都指向唯一地址。

#include<iostream>
using namespace std;
struct entity
{
	static int x;
	int y;
	void print()
	{
		cout<<x<<","<<y<<endl;
	}
};
int entity::x;

void main()
{
	entity i;
	entity p;
	p.x=1;
	p.y=2;
	i.x=3;
	i.y=4;
	p.print();
	i.print();
	cin.get();
}

注意需要对静态成员x进行声明,否则会报错。静态变量的调用可以使用 entity::x

静态的方法不能访问静态的变量。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值