读书人

C++ prime 第三版的几个小问题

发布时间: 2012-04-05 12:42:40 作者: rapoo

C++ prime 第三版的几个问题
问题一:

class IntArray {
public:
explicit IntArray( int sz = DefaultArraySize );
IntArray( int *array, int array_size );
IntArray( const IntArray &rhs );
// ...
private:
static const int DefaultArraySize = 12;
// ...
};

Q:没有见过static const int DefaultArraySize = 12;这样的用法,在VC6.0下编译不过。

问题二:

由于C++不允许成员函数与数据成员共享同一个名字所以在这样的情
况下一般的习惯是在数据成员名字前面加一个下划线_ 因此我们有了公有访问函数
size()和私有数据成员_size 在本书以前的版本中我们在访问函数前加上get 或set 实践证
明这样做有些累赘

Q:累赘指的是什么哈?? C++大学教程上都是get 或set 的用哈。。



[解决办法]
1.要新点的编译器才支持这种const静态成员的定义(并且只正对整形)

2.重点 在于不要同名。
[解决办法]
C++ primer我也再看,你的问题我也碰到过,我在VC6.0调试该代码,也是编译错误,后来找资料,问论坛里的人才知道,VC6.0,VS2005,VS2008等微软的编辑器都不支持该用法。这是标准C++的语法,你换一种编辑器试试。我改用CodeBlocks,使用g++来调试书中的代码,不过也会遇到一些问题,这得你在实践过程中去发现啦。

读书人网 >C++

热点推荐