有一程序,已定义
public:
CSmtp(LPCTSTR szSMTPServerName, UINT nPort=SMTP_PORT);
private:
UINT m_nPort;
CString m_sSMTPServerHostName;
且,
CSmtp::CSmtp(LPCTSTR szSMTPServerName, UINT nPort)
{
ASSERT(szSMTPServerName != NULL);
AfxSocketInit();
m_sSMTPServerHostName=szSMTPServerName;
m_nPort =nPort;
m_bConnected = FALSE;
m_sError = _T("OK");
response_buf = NULL;
}编译时没有问题,但运行时发现m_nPort和m_sSMTPServerHostName没有被付值,请问是什么原因??
public:
CSmtp(LPCTSTR szSMTPServerName, UINT nPort=SMTP_PORT);
private:
UINT m_nPort;
CString m_sSMTPServerHostName;
且,
CSmtp::CSmtp(LPCTSTR szSMTPServerName, UINT nPort)
{
ASSERT(szSMTPServerName != NULL);
AfxSocketInit();
m_sSMTPServerHostName=szSMTPServerName;
m_nPort =nPort;
m_bConnected = FALSE;
m_sError = _T("OK");
response_buf = NULL;
}编译时没有问题,但运行时发现m_nPort和m_sSMTPServerHostName没有被付值,请问是什么原因??
解决方案 »
- 如何架构分布式服务系统?
- 一个得到最大值的ID号的问题
- 主程序如何分成多个文档编译
- 如何获得文件是否被读写的信息?
- 原来是这样!你不能出家的,得回来
- 在WTL/ATL中有没有打开文件的模板或类,就象MFC中CFile一样的?
- i installed an english system, but it doesn't surport chinese input, and many words are displayed incorrectly,how to do with it
- 在VS2005中ACTIVEX控件在关联变量的同时怎样关联外部属性啊?
- 怎样用VC++访问SQLSERVER--不能手工见ODBC驱动源,在程序里怎么建?请给出原代码!
- 关于设备驱...驱...驱动程序开...开...发...发
- 为什么用PostMessage广播,窗口却收不到消息
- 大三课程设计:编一个电力系统仿真的程序!有经验给的经验,没经验给方法,没方法捧个场!
改成CSmtp::CSmtp(LPCTSTR &szSMTPServerName, UINT &nPort)试一试.
离开定义域后,会执行析构函数。Cmyclass * myclass=new Cmyclass();
可以分成两步:
Cmyclass * myclass; // (1)
myclass=new Cmyclass(); // (2)
第一步只是定义,没有生成这个类的空间,如果此时去访问这个类的成员函数或者修改
它的成员变量,会出现错误(没有空间,怎么可能访问?)
第二步:生成了空间,可以访问了,并且执行构造函数,
只有在delete myclass的时候,才会执行析构函数。