VC++创建类的对象时的问题?
补充:最先在MFC框架中看到 CPaintDC dc(this) 了解是指想当先对象
但是后来又看到有人写的程序是这样的 : CSMTP smtp( m_sServer );//CSMTP 是一个类//smtp就是创建的对象//
问题是:m_sServer是另外一个类的成员变量。怎么解释呢?
创建一个类的实例后加个括号,C++书没见过有这么写的啊?这是什么语法啊?
补充:最先在MFC框架中看到 CPaintDC dc(this) 了解是指想当先对象
但是后来又看到有人写的程序是这样的 : CSMTP smtp( m_sServer );//CSMTP 是一个类//smtp就是创建的对象//
问题是:m_sServer是另外一个类的成员变量。怎么解释呢?
创建一个类的实例后加个括号,C++书没见过有这么写的啊?这是什么语法啊?
答案:CPaintDC dc(this)
CSMTP smtp( m_sServer )
这两个都是正确的。
两个都是创建一个对象实例。在创建对象时都要调用相应类的构造函数,不同类的构造函数需要的参数是不同的。对于CPaintDC 类来说,构造函数需要的是当前所在对象的指针,所以参数就是this;而对于CSMTP 来说,构造函数所需的参数是服务器,所以就是m_sServer 了。这两个在本质上都是一样的。