将'const xxx'作为'xxx'的'this'实参时丢弃了类型限定
2012-12-14 14:25
701 查看
这样的错误一般是因为const限定符的问题。
################a.h###############
class A
{
public:
size_t size(){return size;}
};
################main.cpp###########
void print(const A& a)
{
cout << a.size() << endl;
}
A a;
print(a);
错误:将const xxx 作为xxx 的this 实参时丢弃了类型限定
解决:这是由于print()传递的是const参数,而A::size() 不保证传递的实参不改变,所以
报错(STL机制问题). 应该吧size()声明为const函数,以保证编译通过。
size_t size() const;
################a.h###############
class A
{
public:
size_t size(){return size;}
};
################main.cpp###########
void print(const A& a)
{
cout << a.size() << endl;
}
A a;
print(a);
错误:将const xxx 作为xxx 的this 实参时丢弃了类型限定
解决:这是由于print()传递的是const参数,而A::size() 不保证传递的实参不改变,所以
报错(STL机制问题). 应该吧size()声明为const函数,以保证编译通过。
size_t size() const;
相关文章推荐
- 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
- 将'const xxx'作为'xxx'的'this'实参时丢弃了类型限定
- ERROR C3848:具有类型"const XXX" 的表达式会丢失一些 const-volatile 限定符以调用"YYY" with"ZZZ"
- 实参时丢弃了类型限定 原因
- 传递实参时丢弃类型限定的原因
- 传递实参时 丢弃了类型限定
- C++中struct和class的区别及C++ this变量和const变量类型
- const char* 类型形参与LPWSTR 类型的实参不兼容
- const&和const作为返回类型
- IntelliSense: "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容 (vs2010)
- const.char 类型形参与LPWSTR 类型的实参不兼容
- 实参时丢弃了类型 discards qualifiers
- 实参时丢弃了类型 discards qualifiers discards qualifiers问题
- 小议C和C++中的const类型限定符
- “VS 2013 ERROR:const.char* 类型形参与LPWSTR 类型的实参不兼容 ”的解决办法
- "const char*"类型的实参与LPCTSTR类型的形参不兼容
- gcc 报 初始化丢弃了指针目标类型的限定 的警告信息
- 笔记(8)类型限定词const等
- C语言技巧【枚举作为函数变量类型】【数据输入与输出】【do while循环体内scanf函数被跳过,循环结束】【用const修饰函数的参数】
- IntelliSense: "const char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容 (vs2010)