读书人

大一C++自学者上面是一段关于C++类的

发布时间: 2012-11-07 09:56:10 作者: rapoo

大一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;
}

[解决办法]

C/C++ code
class complex//类的定义,此为point.h部分。{    public:    complex(int real,int image);    void sum(complex p1,complex p2);    void print();    ~complex() {}//这里,析构函数,只有声明,无定义,所以出错了    private:    int real,image;};
[解决办法]
探讨
C/C++ code

class complex//类的定义,此为point.h部分。
{
public:
complex(int real,int image);
void sum(complex p1,complex p2);
void print();
~complex() {}//这里,析构函数,只有声明,无定义,所以出错了
……

[解决办法]
~complex()
析构函数没有定义,当c1、c2对象销毁的时候会调用~complex(),但编译器无法找到它的定义。所以出错。

[cpp]
#include<iostream>
using namespace std;

class complex
{
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()
{
cout << real << "+" << image << "i" << endl;
}

int main()
{
complex c1(3,5), c2(7,5);
c1.sum(c1, c2);
c1.print();

return 0;
}
[/cpp]
[解决办法]
C/C++ code
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();
你的这个类的析构函数没有定义~
[解决办法]
C/C++ code
#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;} 

读书人网 >C++

热点推荐