未声明点

Point was not declared

本文关键字:未声明      更新时间:2023-10-16

这是错误:我不知道为什么会出现这个奇怪的错误!"Point"和"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;

afficherDroite3D的成员,所以你需要把它的定义放在那个范围内:

void Droite3D::afficher ( ostream & out) const
{//  ^^^^^^^^^^
  out <<"nc'est la droite definie par le point "
       <<Point<<" et le vecteur "<<Vecteur;
}

否则,您正在定义一个非成员afficher,它显然对PointVecteur一无所知。

请注意,您还希望流式传输到 out ,而不是cout

请在将方法afficher定义为使用类 Droite3D 变量时使用范围解析运算符 ::,因此您需要提及其作用域。