c++里, 构造函数是什么概念?
我理解构造函数有疑问。比如这一段吧:#include"random.h"#include"tcp.h"#include"telnet.h"externdoubletcpl...
我理解构造函数有疑问。比如这一段吧:
#include "random.h"
#include "tcp.h"
#include "telnet.h"
extern double tcplib_telnet_interarrival();
static class TelnetAppClass : public TclClass {
public:
TelnetAppClass() : TclClass("Application/Telnet") {}
TclObject* create(int, const char*const*) {
return (new TelnetApp);
}
} class_app_telnet;
TelnetApp::TelnetApp() : running_(0), timer_(this)
{
bind("interval_", &interval_);
}
void TelnetAppTimer::expire(Event*)
{
t_->timeout();
}
void TelnetApp::start()
{
running_ = 1;
double t = next();
timer_.sched(t);
}
void TelnetApp::stop()
{
running_ = 0;
}
请问哪个是构造函数? 展开
#include "random.h"
#include "tcp.h"
#include "telnet.h"
extern double tcplib_telnet_interarrival();
static class TelnetAppClass : public TclClass {
public:
TelnetAppClass() : TclClass("Application/Telnet") {}
TclObject* create(int, const char*const*) {
return (new TelnetApp);
}
} class_app_telnet;
TelnetApp::TelnetApp() : running_(0), timer_(this)
{
bind("interval_", &interval_);
}
void TelnetAppTimer::expire(Event*)
{
t_->timeout();
}
void TelnetApp::start()
{
running_ = 1;
double t = next();
timer_.sched(t);
}
void TelnetApp::stop()
{
running_ = 0;
}
请问哪个是构造函数? 展开
5个回答
展开全部
构造函数 ,是一种特殊的方法,主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中,特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
如果一个类中没有定义任何的构造函数,那么编译器只有在以下三种情况,才会提供默认的构造函数:
1、如果类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时;
2、如果类的基类有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数);
3、在类中的所有非静态的对象数据成员,它们对应的类中有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数)。
如果一个类中没有定义任何的构造函数,那么编译器只有在以下三种情况,才会提供默认的构造函数:
1、如果类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时;
2、如果类的基类有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数);
3、在类中的所有非静态的对象数据成员,它们对应的类中有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数)。
展开全部
TelnetAppClass() : TclClass("Application/Telnet") {}
这个是构造函数,":"后面跟的是初始化参数列表
初始化参数列表如果你不太清楚的话...可以给我留言
这个是构造函数,":"后面跟的是初始化参数列表
初始化参数列表如果你不太清楚的话...可以给我留言
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 和类名相同
2 没有返回值类型声明
还有除了以上说的俩点,还要注意:
二.构造函数的定义
构造函数的名字不能随便起,必须让编译器认得出才可以被自动执行。它的命名方法既简单又合理:让构造函数与类同名。除了名字外,构造函数的另一个特别之处是没有返回值类型,这与返回值类型为void的函数不同。如果它有返回值类型,那么编译器将不知所措。在你可以访问一个类的方法、属性或任何其它东西之前, 第一条执行的语句是包含有相应类的构造函数。甚至你自己不写一个构造函数,也会有一个缺省构造函数提供给你。
class TestClass
{
public TestClass(): base() {} // 由CLR提供
}
下面列举了几种类型的构造函数
1)缺省构造函数
class TestClass
{
public TestClass
}
希望可以帮上你的忙哦
2 没有返回值类型声明
还有除了以上说的俩点,还要注意:
二.构造函数的定义
构造函数的名字不能随便起,必须让编译器认得出才可以被自动执行。它的命名方法既简单又合理:让构造函数与类同名。除了名字外,构造函数的另一个特别之处是没有返回值类型,这与返回值类型为void的函数不同。如果它有返回值类型,那么编译器将不知所措。在你可以访问一个类的方法、属性或任何其它东西之前, 第一条执行的语句是包含有相应类的构造函数。甚至你自己不写一个构造函数,也会有一个缺省构造函数提供给你。
class TestClass
{
public TestClass(): base() {} // 由CLR提供
}
下面列举了几种类型的构造函数
1)缺省构造函数
class TestClass
{
public TestClass
}
希望可以帮上你的忙哦
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
俩特点..
1 和类名相同
2 没有返回值类型声明
1 和类名相同
2 没有返回值类型声明
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
TelnetAppClass() : TclClass("Application/Telnet") {}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询