我编写了一个关于const类的非常简单的程序,但是,当我编译时,有一个错误:void Test :: printxy(void)':无法将'this'指针从'const Test'转换为'Test& ;'
该计划如下
#include <iostream>
using namespace std;
class Test
{
private:
int x, y;
public:
Test(int a = 1, int b = 1) : x(a), y(b) {};
void printxy();
};
void Test::printxy()
{
cout << "x*y=" << x*y << endl;
}
void main(void)
{
const Test t;
t.printxy();
system("pause");
}
答案 0 :(得分:3)
由于printxy
成员函数未声明const
,因此无法在常量对象上调用它。您需要像这样声明成员函数const
:
class Test
{
void printxy() const;
// ^^^^^
// ...
};
void Test::printxy() const
{
// ...
}
答案 1 :(得分:1)
您尝试在const
对象printxy()
上调用非const
函数t
。您在方法声明后缺少const
:
class Test {
// ...
void printxy() const;
};
void Test::printxy() const {
// ...
}