Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.137.180.32] |
|
Сообщ.
#1
,
|
|
|
Начал тут изучать С++, и сталкнулся с таким вопросом.
Значит есть файл uh.cpp: Цитата Есль моя программа, а вот, что надо написать в uh.h что бы я смог использовать класс point, никак не пойму.class point{ public: float x,y,z; point () {x=y=z=0;}; point (float X) {x=X;y=z=0;}; point (float X,float Y) {x=X;y=Y;z=0;}; point (float X,float Y,float Z) {x=X;y=Y;z=Z;}; void operator += (point a) {x+=a.x;y+=a.y;z+=a.z;}; point operator + (point a) {return point(x+a.x,y+a.y,z+a.z);}; void operator -= (point a) {x-=a.x;y-=a.y;z-=a.z;}; point operator - (point a) {return point(x-a.x,y-a.y,z-a.z);}; point operator * (float a) {return point(x*a,y*a,z*a);}; void operator *= (float a) {x*=a;y*=a;z*=a;}; }; Вроде, там должно быть что-то вроде этого: Цитата То есть одни заголовки, без реализации. Но это не работает, получаю ошибку "unresolved external symbol".class point{ public: float x,y,z; point (void); point (float X); point (float X,float Y); point (float X,float Y,float Z); void operator += (point a); point operator + (point a); void operator -= (point a); point operator - (point a); point operator * (float a); void operator *= (float a); }; Что делать? Заранее спасибо за ответ. |
Сообщ.
#2
,
|
|
|
в .h файле обьаявление класса, членов класса и методом класса.
в cpp - реализация методовs класса uh.h class point{ public: float x,y,z; point (void); point (float X); point (float X,float Y); point (float X,float Y,float Z); void operator += (point a); point operator + (point a); void operator -= (point a); point operator - (point a); point operator * (float a); void operator *= (float a); }; uh.cpp point::point(){} point::point(float X) { //bla-bla } ... void point::operator+=(point a) { //кстати, этот оператор должен возвращать таки point а не void } ... |
Сообщ.
#3
,
|
|
|
Спасибо, все понятно.
|