C++中const和static帮讲解下用法

来源:百度知道 编辑:UC知道 时间:2024/06/11 04:04:11
我再编写类的时候总要用到这两个函数,但是我不太懂,并且总再上面出问题。谁帮我详细讲解下用法.

const有两种用法:
class A
{
public:
void fun1()const;
void fun2(const int& arg);
private:
int m_arg;
static int m_static;
}
先看第一种用法,这个const关键词表示在该成员函数中不可以对该类的数据成员m_arg进行修改。这就是const成员函数的意义。
再看第二种用法,表示向该成员函数传递过来的int型引用不可以在成员函数中修改。这就是const参数的意义。

static的用法:
你首先要知道,一般的成员函数(也算就是不带有static修饰)经过C++编译器预处理之后会给它加上一个this参数,再次以上一个类为例:
其中成员函数fun2,在编译器预处理之后会变成fun2(this,arg);这时候要访问成员数据都是通过这个this指针来访问的,如this->m_arg。由于每一个类对象的this指针不同,所以他们可以访问自己的成员变量。
要是没有static修饰,这个成员函数在预处理之后就不会加上this参数。这样的成员函数由于没有this参数就没法访问m_arg数据成员。这可以访问被static修饰的m_static数据成员。注意,这里的static成员被该类的所有对象共享,而不属于任何一个具体的对象。
所以,总结一句static就是,类中静态数据成员一般使用静态成员函数来访问,这也是static的本意。当然也可以在一般的成员函数中访问,但是非静态数据成员必须使用非静态成员函数访问,不可以使用静态成员函数访问。

over!不知你有没有懂,一般对于出初学者来说要想理解,还是有点为难的。但是坚持一下,你就会发现你懂的人家不懂,那是你会很有成就感的。不懂就问,很好。

static:它所修饰的东东,首先是全局的,还有一点就是它是共享的。(所以多用来记录记录,如在线人数,登录人数,客户连接数等)因为,只要变化了这个东东,之后的所有访问都是变化后的了。

const:若用它来修饰的东东,那么这个东东就不能再被