大一C++自学者,下面是一段关于C++类的简单代码。不知哪儿有错?
下面是一段很简单的代码,要求实现的是两个虚数的加法运算,并且这两个虚数的实部和虚部的数据均在程序中给出(第一个为(3,5);第二个为(7,5))。这段代码,连接有错!不知具体错在哪儿?求各位高手帮帮大一的小弟!
#include<iostream>
#include"Point.h"//类的定义包含在此头文件中。类中的函数成员的定义包含在point.cpp文件中。
using namespace std;
void main()
{
complex c1(3,5),c2(7,5);
c1.sum(c1,c2);
c1.print();
}
class complex//类的定义,此为point.h部分。
{
public:
complex(int real,int image);
void sum(complex p1,complex p2);
void print();
~complex();
private:
int real,image;
};
#include<iostream>//此为point.cpp部分
#include"Point.h"
complex::complex(int a,int b)
{
real = a;
image = b;
}
void complex::sum(complex p1,complex p2)
{
real = p1.real+p2.real;
image = p1.image+p2.image;
}
void complex::print()
{
std::cout<<real<<"+"<<image<<"i"<<std::endl;
}
[解决办法]
class complex//类的定义,此为point.h部分。{ public: complex(int real,int image); void sum(complex p1,complex p2); void print(); ~complex() {}//这里,析构函数,只有声明,无定义,所以出错了 private: int real,image;};
[解决办法]
class complex//类的定义,此为point.h部分。{public: complex(int real,int image); void sum(complex p1,complex p2); void print(); ~complex(); //你的私有数据没有申请新的内存, 用不着析构函数, 但既然写了, 你就得在后面加上函数体.private: int real,image;};
[解决办法]
先
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
右边Visual C++ 2010 Express下面的Select language...下拉选‘简体中文’,再按Install Now按钮
再参考
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\complex
[解决办法]
~complex();
你的这个类的析构函数没有定义~
[解决办法]
#include<iostream>using namespace std;class complex//类的定义,此为point.h部分。{public: complex(int real,int image); void sum(complex p1,complex p2); void print(); ~complex(){}private: int real,image;};complex::complex(int a,int b){ real = a; image = b;}void complex::sum(complex p1,complex p2){ real = p1.real+p2.real; image = p1.image+p2.image;}void complex::print(){ std::cout<<real<<"+"<<image<<"i"<<std::endl;}void main(){ complex c1(3,5),c2(7,5); c1.sum(c1,c2); c1.print(); system("pause"); return;}