吴堡网站建设费用,wordpress is_login,建设部网站 标准定额司,iis如何发布asp.net网站C类中对构造函数的重载
C 允许在同一作用域中的某个函数和运算符指定多个定义#xff0c;分别称为函数重载和运算符重载。
重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明#xff0c;但是它们的参数列表和定义#xff08;实现#xff09;不…C类中对构造函数的重载
C 允许在同一作用域中的某个函数和运算符指定多个定义分别称为函数重载和运算符重载。
重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明但是它们的参数列表和定义实现不相同。
与函数一样构造函数也可重载因此可创建一个将姓名作为参数的构造函数如下所示
class Human
{
public:Human(){// default constructor code here}Human(string humansName){// overloaded constructor code here}
};C 中我们可以在同名的类中拥有多个构造函数只要每个构造函数具有不同的参数列表即可。这个概念称为构造函数重载与函数重载非常相似。
重载的构造函数本质上具有相同的名称类的确切名称但参数的数量和类型不同。 根据传递的参数的数量和类型调用构造函数。 在创建对象时必须传递参数以让编译器知道需要调用哪个构造函数。
以下示例程序演示了重载构造函数的用途它在创建 Human 对象时提供了姓名
#include iostream
#include string
using namespace std;class Human
{private:string name;int age;public:Human() // default constructor {age 0; // initialized to ensure no junk valuecout Default constructor: name and age not set endl;}Human(string humansName, int humansAge) // overloaded constructor {name humansName;age humansAge;cout Overloaded constructor creates ;cout name of age years endl;}
};int main()
{Human firstMan; // use default constructorHuman firstWoman (Eve, 20); // use overloaded constructor
}输出
Default constructor: name and age not set
Overloaded constructor creates Eve of 20 years分析 第 2630 行的 main()很简单它创建了两个 Human 对象其中 firstMan 是使用默认构造函数创建的而 firstWoman 是使用指定姓名和年龄的重载构造函数创建的。所有的输出都是因创建对象而生成的如果 Human 类没有默认构造函数则在 main()中创建每个 Human 对象时都只能使用将姓名和年龄作为参数的构造函数在这种情况下不提供姓名和年龄就无法创建 Human 对象。
该文章会更新欢迎大家批评指正。
推荐一个零声学院的C服务器开发课程个人觉得老师讲得不错 分享给大家LinuxNginxZeroMQMySQLRedis fastdfsMongoDBZK流媒体CDNP2PK8SDocker TCP/IP协程DPDK等技术内容 点击立即学习C/C后台高级服务器课程