c++加一个构造函数

#include<iostream>
using namespace std;
class composite
{
public:
void getsfz(const int &m) 
{
sfz=m;
} 
void getsfm(const int &m)
{
sfm=m;
} 
void getxfz(const int &m)
{
xfz=m;
} 
void getxfm(const int &m)
{
xfm=m;
}
void print()const
{
cout<<"The complex is:"<<sfz<<"\\"<<sfm<<"+"<<xfz<<"\\"<<xfm<<"i"<<endl;
}
const composite operator+(const composite &scd)
{
composite temp;
temp.sfz=sfz*(scd.sfm)+sfm*(scd.sfz);
temp.sfm=sfm*(scd.sfm);
temp.xfz=xfz*(scd.xfm)+xfm*(scd.xfz);
temp.xfm=xfm*(scd.xfm);
return temp;
}
const composite operator-(const composite &scd) /*decalre and define overloading operator '-'function*/
{
composite temp;
temp.sfz=sfz*(scd.sfm)-sfm*(scd.sfz); 
temp.sfm=sfm*(scd.sfm);
temp.xfz=xfz*(scd.xfm)-xfm*(scd.xfz); 
temp.xfm=xfm*(scd.xfm); 
return temp;
}
const composite operator*(const composite &scd)
{
composite temp;
temp.sfz=sfz*(scd.sfz)*xfm*(scd.xfm)-sfm*(scd.sfm)*xfz*(scd.xfz); 
temp.sfm=sfm*(scd.sfm)*xfm*(scd.xfm);
temp.xfz=sfz*(scd.xfz)*xfm*(scd.sfm)+xfz*(scd.sfz)*sfm*sfm*(scd.xfm);
temp.xfm=sfm*(scd.sfm)*xfm*(scd.xfm);
return temp;
}
const composite operator/(const composite &scd) 
{
composite temp;
double a=sfz/sfm,b=xfz/xfm,c=(scd.sfz)/(scd.sfm),d=(scd.xfz)/(scd.xfm);
temp.sfz=a*c+b*d;
temp.sfm=c*c+d*d;
temp.xfz=b*c-a*d;
temp.xfm=temp.sfm; /*the principle of divergenece*/
return temp;
}
private:
double sfz; /*real part numerator*/
double sfm; /*real part denominator*/
double xfz; /*imaginary part numerator*/
double xfm; /*imaginary part denominator*/
};

没有默认构造函数的呀。自己加上个 ,为了简单也可以 composite(...) 用那个三个点直接让所有没有匹配构造函数的对象都调用它。追问

你能帮忙加一个吗?还有个程序中如果分母是0时会继续计算,帮忙改一下让分母输入为0时输出错误然后让用户再次输入

追答

你最好直接发源码,那样好改一些。

追问

百度限制长度了……我这就是源代码呀,只不过main函数用的截图

温馨提示:内容为网友见解,仅供参考
无其他回答

c++编写一个类一定要加上构造函数吗?
这是因为你不写构造函数的话,其实 C++ 会自动的帮你加上一个构造函数,这个就是默认的构造函数。再贴一段百科的定义你就懂了:默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类...

用C++写的重载++的程序,已经有构造函数了,为什么还要添加一个默认的构造...
所谓“默认构造函数”是在类似声明变量Point t2,t3;这样不带参数,而且没有调用默认参数的情况下被调用的,“默认构造函数”是不需要写在程序里的,所以说是默认的(其实就是开辟一段空间存储变量,其他的什么也不干。。。)上面那个程序里的Point(float a,float b)是程序员自定义的构造参数,旨在定义...

c++什么叫构造函数,它的作用是什么
\/\/ 一般构造函数可以有各种参数形式,一个类可以有多个一般构造函数,前提是参数的个数或者类型不同(基于c++的重载函数原理) \/\/ 例如:你还可以写一个 Complex( int num)的构造函数出来 \/\/ 创建对象时根据传入的参数不同调用不同的构造函数 Complex(double real, double imag) { m_real = real; m_imag = im...

C++构造函数和析构函数详解
CTime(){}带参数的构造函数:这样的一个构造函数提供了一个三个成员属性的初始化,声明对象的时候就可以传入参数了。CTimetime(Hour,Minute,Second);\/\/对象的定义CTime(intHour,intMinute,intSecond){m_nHour=Hour;m_nMinute=Minute;m_nSecond=Second;} 在有了构造函数之后,我们声明时...

怎么用c++编写构造函数
Point(int x = 0, int y = 0)\/\/带默认参数的构造函数,如果有这个可以省略无参构造函数,因为两个参数都不写的话编译器不知道用哪个了。实际有这一个构造函数就可以了,所有情况都包括。} \/\/函数实现方法 Point::Point(int x = 0, int y = 0){ \/\/这里的形参和类成员重名了,可以用this...

c++中在定义的一个类中,怎么还会加一个同名的代码?看到好几个这种情况...
和类名相同的方法是构造函数,和类名相同且前面有~符号的是析构函数。你也可以不写,系统会自动添加一个默认构造和析构函数,但通常我们都会写自己的构造和析构函数。就像上面的例子,但上面的例子还不完整,因为它并没用进行实现,可以在类中直接实现,也可以在类外进行实现,这方面的信息网上很多的...

C++中的移动构造函数(move constructor)
C++中的移动构造函数,是一种高效且特殊的构造函数,其设计目的是在可能需要移动内部资源时,快速地将一个对象的内容传递给新对象,而不进行深度复制。对于管理复杂资源的类,如智能指针、动态内存或网络连接,移动构造函数至关重要。移动构造函数的声明通常形式为T::T(T&&),它不应抛出异常,因为其主要...

关于C++builder自定义构造函数
void __fastcall TForm1::Button1Click(TObject *Sender){ Test=new TTest;Edit1->Text=IntToStr(Test->Add(10,10));delete Test;} 你需要把c++再学学

求助!C++中类的构造函数与创建动态对象的问题!
第一段代码 类a中你没有些构造函数,因此,编译器会替你自动添加一个默认的构造函数: a(void){},所以你在第一段的main函数中p = new a;时,实际上调用的是这个默认的构造函数a(void){},当然不需要参数。第二段代码你自己写了构造函数,编译器就不会替你添加默认的构造函数,所以在main...

在c++类中,定义构造函数的目的是什么
构造函数通常用于在实例化对象时自动对内部数据成员初始化,设置初始值、分配内存空间等。而析构函数则用于删除对象时做收尾工作,比如释放申请的空间等。要创建一个对象,就得调用构造函数。要销毁一个对象,就会被迫的调用析构函数。如果成员函数声明称static,不创建对象也能调用 静态成员函数。

相似回答