C++输入输出符重载,打问号的两处看不懂,请大神赐教,输入输出接口

文章 2年前 (2021) admin
0

Q1:C++输入输出符重载,打问号的两处看不懂,请大神赐教?

第二个构造函数当然就是初始化成缺省值而已至于>>是从infile读到stu,而不是stu到infile

Q2:C++输入、输出 运算符重载问题!

你的项目中有person.cpp,那么person.h也包含在person.cpp中?只需删除person.cpp建议函数的实现部分写在。cpp文件,不在。h文件,这很容易造成多个实现问题。

Q3:看不懂C++的运算符重载

嗯,这是复数类中的一个运算符重载:complexcomplex:3360运算符(complex C1)//重载加号运算,当前复数这个复数c1 { complex temp//这保存了两个复数相加的结果,temp . re=re C1 . re;//temp.re是这个-re(这个可以省略)加上C1 . retamp . im=im=C1 . im;//虚数部分的加法与上面的实数部分相同。返回温度;//返回结果temp}您想给一个默认的构造函数吗?你不能写,这个构造函数复合体的主函数中c3的初始化(doubletre=0,doubletim=0)意味着(0,0)有默认值,所以。

Q4:C++重载输出运算符问题跪求高手解答

你程序出错的主要原因是:你没有搞清楚什么是友元friend,他与class的关系又是什么~简单的说就是:将一个函数声明为friend只是赋予这个函数具有访问class的私有成员和protected成员的权利而已,即只改变了函数的访问能力(权限)在你的程序里:输出运算符只是一个普通的函数(不是模板函数)至于第二个参数A& a则只在class内部起作用(即编译不会出错)假如你现在要写一个成员函数,其中有一个参数是模板类对象的引用即(A& a)而非(A& a),也就是说在类定义体内(化括弧)不会出现A 这种类型,除非定义友元的模板函数,但是此T非彼T(修改后的类里边其实有两种T(friend模板函数里边的T不是定义类模板是的那个T,前者只属于本函数,你也可以将T改成别的如Type,好好理解一下)说的比较模糊,请见谅~~!另外:你上面的程序虽然编译通过,但是有一个最好不要那样做(因为你在函数后面加了一个;)有与C++允许有空语句,即 ;什么也不做。但是,这有何必呢?(你看江小石---回答问题者---就误解了,以为你的编译器有问题)额外的编程规范就不说了(因为太多了,虽然你的代码很短),总之你写的代码不怎么规范(下面代码与你的“规范”保持一致),注意一下~#include using namespace std;templateclass A{ T t;public: A(T m):t(m){} template friend ostream& operator << (ostream& out, A& a);};templateostream& operator <<(ostream& out ,A& a){ out << a.t << endl; return out;}int main(){ A a(1); cout << a << endl;}另外,团IDC网上有许多产品团购,便宜有口碑

Q5:c++文件和重载输出符问题

流运算符的重载要以友元函数的形式,并且声明和定义要放在一起。改成这样,就可以了#包括#包括#包括#包括使用命名空间标准;c类学生{ public : int num字符名称[30];迷人的性别;国际年龄;浮动匹配;浮动PC;浮动en;浮动总和;浮动平均值;c学生(){ num=0;strcpy(名称" ");性别=" ";年龄=0;match=0;PC=0;en=0;sum=0;平均值=0;} friend是s tream运算符(is tream is,Cstudents c){ isc。namec。性别。匹配c . PCC。en;回报是;} friend ostream运算符(ostream OS,Cstudents c)//符号也输错了{ osn0!=n) { stu[n].num=n;cout "输入名字性别年龄数学计算机外语;cinstu[n];if(nmax)max=n;}而(我

Q6:C++运算符重载输出问题

朋友牡蛎操作符(牡蛎操作系统,节点温度);运算符应该声明为Node类的朋友,这样函数就可以访问Node类的私有成员temp.a和temp.b,否则编译就错了。其次,ostream操作符(ostream OS,node temp){ ost amp。一个端点;os temp.b endl返回OS;}应该在类外部和类之前定义,这是实际的函数体。如果返回值为,则返回os对象本身的引用;如果不使用返回值,它将是ostream类型对象os的副本,可以理解为:当您使用以下语句时:os node1 node2With可以等价如下:os node1os node2不带的应该是这样的:牡蛎;ostem p=(OS node 1);ostemp node2也就是说,会创建临时对象,这会带来额外的时间和空间开销。

相关文章