深度探索C++ 对象模型第91页的疑问
2013-06-11 19:53
369 查看
在《深度探索C++对象模型》这本书的第91页中,有这样一个代码,
#include <iostream>
using namespace std;
typedef int length;
class Point3D
{
public:
void mumble( length val ) { _val = val; }
length mumble() { return _val; }
private:
typedef float lengh;
length _val;
};
int main()
{
Point3D tmp3D;
tmp3D.mumble( 1.0 );
cout<<tmp3D.mumble()<<endl;
}
以上的代码被书中认为是错误的,因为length有冲突,《C++ primer》中也说这种写法是错误的,编译是通过不了的。但是我在vs2008中是可以编译通过的,发现类里面的 typedef float length 会被屏蔽,不管typedef float length 是在private或者public中,都是被屏蔽的,全局只有int length 起作用!这是咋回事?
#include <iostream>
using namespace std;
typedef int length;
class Point3D
{
public:
void mumble( length val ) { _val = val; }
length mumble() { return _val; }
private:
typedef float lengh;
length _val;
};
int main()
{
Point3D tmp3D;
tmp3D.mumble( 1.0 );
cout<<tmp3D.mumble()<<endl;
}
以上的代码被书中认为是错误的,因为length有冲突,《C++ primer》中也说这种写法是错误的,编译是通过不了的。但是我在vs2008中是可以编译通过的,发现类里面的 typedef float length 会被屏蔽,不管typedef float length 是在private或者public中,都是被屏蔽的,全局只有int length 起作用!这是咋回事?
相关文章推荐
- 【C++】深度探索C++对象模型之构造、析构、拷贝语意学
- 读【深度探索C++对象模型】【下】
- 深度探索C++对象模型 第二章 读书笔记
- 深度探索C++ 对象模型【第一章3】
- Inside the C++ Object Model 深度探索对象模型 5-Construction 6-Runtime 7-Object
- 深度探索C++对象模型之C++对象模型笔记
- 【深度探索c++对象模型】关于对象
- 深度探索C++对象模型之一 --- 关于对象
- 深度探索C++对象模型 第二章 读书笔记
- 深度探索c++对象模型——读书笔记(一)
- [深度探索C++对象模型]关于成员初始化列表(member initiallization list)
- Inside the C++ Object Model 深度探索对象模型 5-7
- 深度探索C++对象模型 1
- 深度探索C++对象模型复习和学习 第三章 Data 语义学(The Semantics of Data )
- 深度探索C++对象模型-指向Data Members的指针
- 深度探索c++对象模型之template的具现行为
- 深度探索C++对象模型--关于对象
- 深度探索c++对象模型之template中的名称决议方式
- 深度探索C++对象模型--------C++对象模型
- 深度探索C++对象模型之:成员函数语义学--静态成员函数