这是错误: 我不知道为什么这个奇怪的错误! '点'& 'Vector'是类的“Droite3D”属性! 请帮忙
******************************* Droite3D.h**************************
#ifndef DROITE3D_H
#define DROITE3D_H
#include<iostream>
#include<Point3D.h>
#include<Vecteur3D.h>``
class Droite3D
{
Point3D Point;
Vecteur3D Vecteur;
public:
Droite3D(Point3D p, Vecteur3D v){
Point=p;
Vecteur=v;
}
void afficher();
void afficher ( ostream & out) const;
};
的 的 ** * ** * ** * 的** * ** * Droite3D.cpp * * ** * * * * ** * ** * **
#include "Droite3D.h"
#include<iostream>
ostream & operator<< (ostream & out, const Droite3D &D)
{
D.afficher (out);
return out;
}
}
void afficher ( ostream & out) const{
cout <<"\nc'est la droite definie par le point "<<Point<<" et le vecteur "<<Vecteur;
答案 0 :(得分:1)
afficher
是Droite3D
的成员,因此您需要将其定义放在该范围内:
void Droite3D::afficher ( ostream & out) const
{// ^^^^^^^^^^
out <<"\nc'est la droite definie par le point "
<<Point<<" et le vecteur "<<Vecteur;
}
否则,您定义的是非成员afficher
,它显然对Point
或Vecteur
一无所知。
请注意,您还希望流式传输到out
,而不是cout
。
答案 1 :(得分:1)
请在使用类::
的变量定义方法afficher
时使用范围解析运算符Droite3D
,因此您需要提及其范围。