C++ (对象)未在此范围内声明m_cPoint
我提出了一个课堂观点和一个课堂角色。然后我在我的角色类中将点用作对象。在我的character类中,我想在函数“moveCharacter”中设置point对象,但编译器给出了错误:C++ (对象)未在此范围内声明m_cPoint,c++,C++,我提出了一个课堂观点和一个课堂角色。然后我在我的角色类中将点用作对象。在我的character类中,我想在函数“moveCharacter”中设置point对象,但编译器给出了错误: character.cpp: In function 'void moveCharacter(double, double, double)': character.cpp:17:2: error: 'm_cPoint' was not declared in this scope m_cPoint.setPo
character.cpp: In function 'void moveCharacter(double, double, double)':
character.cpp:17:2: error: 'm_cPoint' was not declared in this scope
m_cPoint.setPoint(dX, dY, dZ);
^
h点:
#ifndef POINT_H
#define POINT_H
#include <iostream>
class Point
{
public:
Point(const double dX, const double dY, const double dZ);
double getX() const { return this->m_dX; }
double getY() const { return this->m_dY; }
double getZ() const { return this->m_dZ; }
void setPoint(const double dX, const double dY, const double dZ);
friend std::ostream& operator<<(std::ostream &out, const Point &cPoint);
private:
double m_dX, m_dY, m_dZ;
};
#endif
#如果不确定点(H)
#定义点
#包括
类点
{
公众:
点(常数双dX、常数双dY、常数双dZ);
double getX()常量{返回this->m_dX;}
double getY()常量{返回this->m_dY;}
double getZ()常量{返回this->m_dZ;}
无效设定点(常数双dX、常数双dY、常数双dZ);
friend std::ostream和操作员更改
到
这就是类成员变量的范围,而不是一个独立的函数,并且可能修复这个->m_cPoint.settpoint(dX,dY,dZ)
?哦,天哪……有时候怎么可能监督最简单的事情呢?谢谢!你不需要这个->
#include "point.h"
Point::Point(const double dX, const double dY, const double dZ)
: m_dX{dX}, m_dY{dY}, m_dZ{dZ}
{
}
std::ostream& operator<<(std::ostream &out, const Point &cPoint)
{
out << "(" << cPoint.getX() << ", " << cPoint.getY() << ", " << cPoint.getZ() << ")";
return out;
}
void Point::setPoint(const double dX, const double dY, const double dZ)
{
this->m_dX = dX;
this->m_dY = dY;
this->m_dZ = dZ;
}
#ifndef CHARACTER_H
#define CHARACTER_H
#include <iostream>
#include <string>
#include "point.h"
class Character
{
public:
Character(const std::string strName, const Point &cPoint);
friend std::ostream& operator<<(std::ostream &out, const Character &cCharacter);
std::string getName() const { return this->m_strName; }
Point getLocation() const { return this->m_cPoint; }
void moveCharacter(const double dX, const double dY, const double dZ);
private:
std::string m_strName;
Point m_cPoint;
};
#endif
#include "character.h"
Character::Character(const std::string strName, const Point &cPoint)
: m_strName{strName}, m_cPoint{cPoint}
{
}
std::ostream& operator<<(std::ostream &out, const Character &cCharacter)
{
out << cCharacter.getName() << " is at location: " << cCharacter.getLocation();
return out;
}
void moveCharacter(const double dX, const double dY, const double dZ)
{
m_cPoint.setPoint(dX, dY, dZ);
}
void moveCharacter(const double dX, const double dY, const double dZ)
void Character::moveCharacter(const double dX, const double dY, const double dZ)