C++ C++;错误C2662或如何以正确的方式声明
在编译程序时,我得到了衰减错误: vandenynas.cpp(19)错误C2662:“skaiciavimas::showst”:无法将“this”指针从“const skaiciavimas”转换为“skaiciavimas&” 这是我的课程: 首先,h 第二个是function.hC++ C++;错误C2662或如何以正确的方式声明,c++,class,declaration,C++,Class,Declaration,在编译程序时,我得到了衰减错误: vandenynas.cpp(19)错误C2662:“skaiciavimas::showst”:无法将“this”指针从“const skaiciavimas”转换为“skaiciavimas&” 这是我的课程: 首先,h 第二个是function.h #pragma once #include <iostream> #include <string> using namespace std; class skaiciavimas {
#pragma once
#include <iostream>
#include <string>
using namespace std;
class skaiciavimas
{
public:
struct v
{
int x;
int y;
int z;
};
void showst(v st);
};
#pragma一次
#包括
#包括
使用名称空间std;
skaiciavimas类
{
公众:
结构v
{
int x;
int-y;
intz;
};
void showst(v st);
};
.cpp
#包括“skaiciavimas.h”
void skaiciavimas::showst(v st)
{
cout问题在于,您将vandenynas::duomenys
声明为const
函数,即它不会更改对象中的任何内容。但它调用skaiciavimas::showst
,该函数未声明为const
,这是不允许的。如果您将一个方法声明为const
,则它调用的所有方法都在其中self或作为对象成员的对象也必须声明为const
问题是您将vandenynas::duomeys
声明为const
函数,即它不会更改对象中的任何内容。但它调用skaiciavimas::showst
,而不是声明为const
,这是不允许。如果将一个方法声明为const
,则它调用的所有方法本身或作为该对象成员的对象也必须声明为const
skaiciavimas::showst
不是一个const成员函数。由于vandenynas::duomeys
是一个const成员函数,因此this
被认为是常量,因此不能调用skaiciavimas::showst
。skaiciavimas::showst
不是常量成员函数。由于vandenynas::duomeys
是常量成员函数,因此this
的所有成员都被认为是常量,因此skaiciavimas::showst
c无法调用。请指明错误发生的行。请指明错误发生的行。您可以调用其他对象的非常量方法。抱歉,我现在看到该对象是成员。我更改了投票。您可以调用其他对象的非常量方法。抱歉,我现在看到该对象是成员。我更改了vote.您可以调用其他对象的非常量方法。抱歉,我现在看到该对象是成员。我更改了投票。您可以调用其他对象的非常量方法。抱歉,我现在看到该对象是成员。我更改了投票。
#include "vandenynas.h"
skaiciavimas::v vektorV;
void vandenynas::duomenys (int i, int a, int a0) const
{
switch (i)
{
case 0:
vektorV.x=a-a0;
break;
case 1:
vektorV.y=a-a0;
break;
default:
vektorV.z=a-a0;
break;
}
sk.showst(vektorV);
}
#pragma once
#include <iostream>
#include <string>
using namespace std;
class skaiciavimas
{
public:
struct v
{
int x;
int y;
int z;
};
void showst(v st);
};
#include "skaiciavimas.h"
void skaiciavimas::showst(v st)
{
cout<<st.x<<" "<<st.y<<" "<<st.z<<endl;
}