引申问题一:拷贝构造函数中参数是否加const对拷贝构造函数的影响。
网上大多数人对于这个问题的解释只能达到"当你不想对参数进行修改时,就需要加上const关键字"的程度,但是并没有仔细区分这两种情况到底有什么区别。以下面的程序为例:
Dog.h
#ifndef __test_header__Dog__
#define __test_header__Dog__
#include
cl...
分类:
编程语言 时间:
2015-04-03 17:20:15
阅读次数:
157
#includeusing namespace std;void f(const int x) //const修饰函数参数,传递过来的参数在函数内不可以改变,与上面修饰变量时的性质一样{ x=3;//编译有错误,不能修改函数参数的值} void f( int x) const //const...
分类:
其他好文 时间:
2015-03-31 22:11:00
阅读次数:
135
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。 Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:...
分类:
其他好文 时间:
2015-03-21 13:53:43
阅读次数:
234
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。一、Const作用如下表所示:No....
分类:
编程语言 时间:
2015-03-20 18:22:30
阅读次数:
169
将指针参数声明为指向常量数据的指针有两条理由: 这样可以避免由于无意间修改数据而导致的编译错误。 使用const使得函数能够处理const和非const实参,否则将只能接收非const数据。 如果条件允许,则应将指针形参声明为指向const的指针。 可以有两种不同的方式将const关键字用于指针: ...
分类:
其他好文 时间:
2015-03-19 21:45:00
阅读次数:
128
const int a;int const a;const int *a;int * const a;int const * a const;/******/前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向...
分类:
其他好文 时间:
2015-03-18 23:14:18
阅读次数:
809
大家看到const关键字, 大多数人会不会认为它是一个const常量, 我告诉大家这是错误的认知, 那么它实际的意义是什么呢? 其实const不能把变量变成常量, 而是把一个变量, 变成了一个只读变量, 所以我们不能直接修改它的值, 但是我们可以通过它的地址, 来修改它的值.1. const的普通用...
分类:
编程语言 时间:
2015-03-16 16:21:00
阅读次数:
204
C++中类成员变量加上static或const关键字后的初始化问题。在一个简单的C++类中定义如下这些变量:
#include
using namespace std;
class TestVariable{
public:
TestVariable(){}
private:
int intVariable;//情况0 不加限定符,这个不需要进行讨论
const int cons...
分类:
编程语言 时间:
2015-03-09 12:55:15
阅读次数:
132
声明一个成员函数的时候用const关键字是用来说明这个函数是 "只读(read-only)"函数,也就是说明这个函数不会修改任何数据成员(object)。 为了声明一个const成员函数, 把const关键字放在函数括号的后面。声明和定义的时候都应该放const关键字。 任何不会修改数据成员的函数都...
分类:
编程语言 时间:
2015-03-06 16:13:16
阅读次数:
171
readonly关键字与const关键字不同。const字段只能在该字段的声明中初始化。readonly字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly字段可能具有不同的值。另外,const字段是编译时常量,readonly字段为运行时常量。你应该尽量使用运行时常量。原...