首页 > 编程语言 >c++期末题库三(读程序写结果)

c++期末题库三(读程序写结果)

时间:2024-06-18 12:29:27浏览次数:11  
标签:调用 BC DC c++ 期末 Pair 题库 first 构造函数

1.

#include<iostream>
using namespace std;
class BC
{
public:
BC(int n=100){val=n;cout<<"default con."<<endl;}
BC(BC& t){val=t.val;cout<<"Copy con."<<endl;}
BC& operator = (BC&t)
{
val=t.val;
cout<<"Assignment."<<endl;
return *this;
}
private:
int val;

};
void f(BC){}
void main()
{
BC t1(3);
BC t2;
t2=t1;
f(t2);
}
  • BC t1(3);
    • 调用带参数的构造函数,val 被赋值为 3,输出 "default con."
  • BC t2;
    • 调用默认构造函数,val 被赋值为 100,输出 "default con."
  • t2 = t1;
    • 调用赋值运算符重载函数,t2val 被赋值为 t1val(即 3),输出 "Assignment."
  • f(t2);
    • 传递 t2 对象作为参数调用 f 函数,传参时会调用拷贝构造函数,输出 "Copy con."

总结以上分析,程序的输出顺序如下:

default con.
default con.
Assignment.
Copy con.

2.

#include<iostream>
using namespace std;
class BC{
public:
BC(){cout<<"BC's constructor\n";}
~BC(){cout<<"BC's destructor\n";}
};
class DC:public BC{
public:
DC(){cout<<"DC's constructor\n";}
~DC(){cout<<"DC's destructor\n";}
};
int main()
{
DC d;
return0;
}

步骤:

  1. 当程序执行到 DC d; 时,首先会调用 DC 类的构造函数。
  2. 由于 DC 类继承自 BC 类,所以在 DC 类的构造函数被调用之前,会先调用 BC 类的构造函数。
  3. 因此,首先打印出 BC's constructor
  4. 然后打印出 DC's constructor
  5. 当程序执行完 main() 函数并到达 return 0; 时,对象 d 的析构函数会被调用。
  6. 首先会调用 DC 类的析构函数。
  7. 然后会调用 BC 类的析构函数。

输出结果

BC's constructor
DC's constructor
DC's destructor
BC's destructor

3.

class Pair{
public:
Pair(int a,int b):first(a),second(b){}
void output(){cout<<first<<"AND"<<second;}
int&operator()(int i){
if(i==1)
return first;
else if(i==2)
return second;
else throw string("wrong index");
}
private:
int first;
int second;

};
void main()
{
Pair obj(1,2);
obj(1)=obj(1)+obj(2);
obj.output();
}

1.类Pair的构造函数

构造函数Pair(int a,int b)初始化成员变量first和second,first 被初始化为 a 的值(即 1),second 被初始化为 b 的值(即 2)。

2.Pairoutput 成员函数

输出成员变量 firstsecond 的值,中间用 " AND " 连接。

3.Pairoperator() 成员函数

该函数是一个重载的函数调用运算符,用于返回 firstsecond 的引用,取决于传入的索引 i

4.main函数

创建一个Pair对象obj,初始化first为1,second为2。调用obj(1) = obj(1) + obj(2);obj(1)=3,即first被赋值为3

5.调用obj.output()

输出结果

3 AND 2

4.

class B{
public:
B(string s){this->s=s;}
void output(){cout<<s;}
private:
string s;

};
class D:public B{
public:
D(string a,string b):B(a+b),s(b){}
void output(){cout<<s;B::output();}
private :
string s;
};
void main()
{
D *p = new D("world","hello");
p->output();
}

输出结果

hello world hello

5.

class B
{
public:
B(){cout<<"hello";}
~B(){cout<<"bye";}

};
class D:public B
{
public:
D(){cout<<"world";}
~D(){cout<<"C++";}
};
void main()
{
D obj;
cout<<"hi";
}

输出结果

hello world hi C++ bye

标签:调用,BC,DC,c++,期末,Pair,题库,first,构造函数
From: https://blog.csdn.net/ztf0608/article/details/139741480

相关文章

  • VC++ gen uuid and time
    //ConsoleApplication2.cpp:Thisfilecontainsthe'main'function.Programexecutionbeginsandendsthere.//#define_CRT_SECURE_NO_WARNINGS#pragmacomment(lib,"rpcrt4.lib")#include<windows.h>#include<rpcdce.h>#......
  • ssm题库分享
    1、(2分)以下哪个选项描述了在SSM框架集成中,MyBatis的作用?A、实现容器管理和事务控制等功能B、实现数据访问和对象映射等功能C、实现InversionofControl和依赖注入等功能D、实现面向切面编程和声明式事务等功能你的答案:B正确答案:B【答案解析】在SSM框架集成中,MyBati......
  • C/C++ main 函数注意事项
    main 函数是C/C++程序的入口点,当运行程序时,操作系统会调用 main 函数来启动程序。下面为 main 函数的注意事项:函数签名:在C/C++中,main 函数的标准签名通常有两种形式:intmain(){//...}intmain(intargc,char*argv[]){//...}其中,argc 是命......
  • C++ 20新特性之原子引用
    ......
  • 【C/C++】实现高性能日志轮转功能,已实测
    基本实现在C语言中实现日志文件轮转功能,你需要手动编写代码来处理文件的重命名、压缩和删除。下面是一个简单的C语言程序示例,它演示了如何实现基本的日志文件轮转功能。这个程序会检查日志文件的大小,如果超过预设的大小限制,则将当前日志文件重命名,并创建一个新的日志文件。......
  • LeetCode 算法: 环形链表 c++
    原题链接......
  • C++的动态内存管理
    C++的new和delete一、C与C++的内存管理以及分配二、C++中的new和delete1、new/new[]和delete/delete[]的用法2、new和delete对于内置类型和自定义类型的区别三、new和delete的底层原理1、全局的operatornew和全局的operatordelete2、对于内置类型和自定义类型两个全局......
  • [C++][数据结构][红黑树]详细讲解
    目录1.红黑树的概念2.红黑树的性质3.红黑树节点的定义4.红黑树的结构5.红黑树的插入操作1.cur为红,p为红,g为黑,u存在且为红2.cur为红,p为红,g为黑,u不存在/u存在且为黑--单旋+变色3.cur为红,p为红,g为黑,u不存在/u存在且为黑--双旋+变色6.红黑树的迭代器1.begin()与end()2.o......
  • c# 调用 c++代码
    摘要需要三个项目c++代码CPPProjectc++包装器CPPWrapc#包装器CSharpWrapCPPWrap创建c++动态链接库项目配置属性-高级-C+/CLI属性,依次设置公共语言运行时支持、.NET目标框架(设置为需要的.net环境对应的版本即可)调整公共语言运行时调整项目属性-C/C++-语......
  • 鸿蒙期末大作业——甜点店铺APP(三)首页的详细完善
    一、首页具体模块的分析    这一期我们完善首页具体模块的渲染。        首页包含三个模块——轮播模块、导航模块以及列表模块。我们首先在view中的components中新建三个新的ets文件——SwiperExample.ets、NavExample.ets、ListExample.ets。以方便在HomeP......