C++ 对象的使用

对象的使用

 

static关键字

C语言中:

1.      static关键字的作用

static关键字既能修饰变量,又能修饰函数。修饰变量既能修饰局部变量,又能修饰全局变量。

1)        修饰局部变量时,称为静态局部变量,延长变量的生存周期,程序执行结束才释放。

2)        修饰全局变量时,该全局变量只能在本文件可见,其他文件不可见。

3)        修饰函数时,该函数只能在本文件被调用,不能在其他文件中被调用。

2.      什么时候使用static关键字?

1)        当使用一个变量时,不希望其释放,可以使用static关键字。不使用全局变量的原因是全局变量对所有文件可见,比较危险。

2)        全局变量只需要在本文件使用时可以加static关键字,其他文件可以对该变量名进行重复定义,起到保护作用。

3)        函数只需要在本文件使用时可以加static关键字,其他文件可以对该函数名进行重复定义。

 

 

C++中:

1.static成员

1)    对于特定类型的全体对象而言,有时候可能需要访问一个全局的变量,比如统计某种类型对象已创建的数量

2)    全局变量会破坏数据的封装,一般的用户代码都可以修改这个全局变量,可以用类的静态成员来解决这个问题。

注意事项:

Static成员要在类定义体外进行初始化与定义

只有整型static const成员(类常量)可以在类内初始化,而且只能在类内初始化。

static cons tint MAX_LEN = 1024;

 

2.static成员函数

没有this指针

非静态成员函数不可以访问静态成员

静态成员函数不可以访问非静态成员

(static成员函数不属于具体对象,与成员方法一样,是被共享的)

 

#include <iostream>
using namespace std;
 
class String
{
public:
    String();
    ~String();
    //String(char *str);
    //void display();
    //String(const String& other);
    //String& operator=(const String& other);
 
    //static int MAX_LEN; //类成员,在String.cpp中进行类外初始化
    void setMAXLEN(intmaxlen);
    int getMAXLEN();
private:
    char *str_;
    static int MAX_LEN; //类成员,在String.cpp中进行类外初始化
 
};

#include "String.h"
 
int String::MAX_LEN = 0;  //一定要在类外初始化
 
String::String ()
{
    cout<< "construct test" <<endl;
    str_ = new char('\0');
}
 
String::~String ()
{
    cout<< "destroy construct test"<< endl;
    delete [] str_;
}
 
void    String::setMAXLEN(int maxlen)
{
    MAX_LEN =maxlen;
}
 
int String::getMAXLEN()
{
    return MAX_LEN;
}
 

#include "String.h"
 
int main()
{
    String s;
    s.setMAXLEN(2048);
    cout<< s.getMAXLEN() <<endl;
 
    return 0;
}
 


 

const关键字

C语言中:

1.const关键字的作用

const修饰的变量为只读变量,表示不能通过变量名进行修改,但可以通过变量的空间进行修改。

2.什么时候使用const关键字?

一般用来修饰函数形参,避免在函数实现时修改实参的值,便于调试。

3.const关键字使用注意事项

1)        使用const修饰变量时,变量一定要初始化。

2)        注意哪些函数形参需要使用const关键字(这是函数实现者好的体现,防止函数对实参进行修改)。

实例:

const int *p = &num;//不能通过p修改其指向空间的值

int * const p = &num;//不能通过p修改其对应空间的值

(离谁近谁不能修改自身的值)

 

 

C++:

使用const修饰,要一一对应,const引用指向const对象。

1.const成员函数

const成员函数不会修改对象的状态

const成员函数只能访问数据成员的值,而不能修改它

2.const 成员对象

如果一个对象指定为const, 就是告诉编译器不要修改它

 

二.mutable关键字

mutable修饰的数据成员即使在const对象或在const成员函数中都可以被修改

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值