C++ Primerä¸å¨è®²æé å½æ°åå§åå表çæ¶åæè¿ä¹ä¸æ®µè¯ï¼
æ 论æ¯å¨æé å½æ°åå§åå表ä¸åå§åæåï¼è¿æ¯å¨æé å½æ°ä½ä¸å¯¹å®ä»¬èµå¼ï¼æç»ç»ææ¯ç¸åçãä¸åä¹å¤å¨äºï¼ä½¿ç¨æé å½æ°åå§åå表ççæ¬åå§åæ°æ®æåï¼æ²¡æå®ä¹åå§åå表çæé å½æ°çæ¬å¨æé å½æ°ä½ä¸å¯¹æ°æ®æåèµå¼ã
请é®è¿éçåå§åæ°æ®æåä¸å¯¹æ°æ®æåèµå¼çå«ä¹æ¯ä»ä¹ï¼æä»ä¹åºå«ï¼
æç¥éå¨æ°æ®æåæé»è®¤æé å½æ°æ¶æ¯æä¸åçï¼ä½å¯¹å
¶ä»ç±»åçæåå¢ï¼å
¶ä»ç±»åæåçåå§ååèµå¼æåºå«åï¼
========================================================================================
æ¯è¿ä¸ªææï¼
é¦å
ææ°æ®æåæç±»ååç±»
1ãå
ç½®æ°æ®ç±»åï¼å¤åç±»åï¼æéï¼å¼ç¨ï¼
2ãç¨æ·å®ä¹ç±»åï¼ç±»ç±»åï¼
åæ
åµè¯´æï¼
对äºç±»å1ï¼å¨æååå§åå表åæé å½æ°ä½å
è¿è¡ï¼å¨æ§è½åç»æä¸é½æ¯ä¸æ ·ç
对äºç±»å2ï¼ç»æä¸ç¸åï¼ä½æ¯æ§è½ä¸åå¨å¾å¤§çå·®å«
å 为类类åçæ°æ®æå对象å¨è¿å
¥å½æ°ä½æ¯å·²ç»æé å®æï¼ä¹å°±æ¯è¯´å¨æååå§åå表å¤è¿è¡æé 对象çå·¥ä½ï¼è¿æ¯è°ç¨ä¸ä¸ªæé å½æ°ï¼å¨è¿å
¥å½æ°ä½ä¹åï¼è¿è¡çæ¯ å¯¹å·²ç»æé 好ç类对象çèµå¼ï¼åè°ç¨ä¸ªæ·è´èµå¼æä½ç¬¦æè½å®æï¼å¦æ并æªæä¾ï¼å使ç¨ç¼è¯å¨æä¾çé»è®¤ææåèµå¼è¡ä¸ºï¼
举个ä¾è¯´æ
class Aï¼
class B
{public:
B(){a = 3;}
private:
A a;
}
class A
{public:
A(){}
A(int){value = 3;}
int value;
}
åä¸é¢ï¼æ们使a对象çvalue为3ï¼è°ç¨ä¸ä¸ªAçæé å½æ°ï¼ä¸ä¸ªé»è®¤æ·è´èµå¼ç¬¦ï¼æè¾¾å°ç®ç
Bï¼ï¼B()ï¼aï¼3ï¼{}
åè¿æ ·ï¼åªè°ç¨äºä¸ä¸ªæé å½æ°å°±è¾¾å°äºæéç对象å¦ï¼æ以æ§è½å¥½ç
转载ä»äººä¸ç¯
æçé®é¢æ¯å
³äºåå§åC++ç±»æåçãæè§è¿è®¸å¤è¿æ ·ç代ç ï¼å
æ¬å¨ä½ çæ ç®ä¸ä¹è§å°è¿ï¼ï¼
CSomeClass::CSomeClass()
{
x=0;
y=1;
}
èå¨å«çä»ä¹å°æ¹ååæä¸é¢çæ ·åï¼
CSomeClass::CSomeClass() : x(0), y(1)
{
}
æçä¸äºç¨åºåæå说第äºç§æ¹æ³æ¯è¾å¥½ï¼ä½ä»ä»¬é½ä¸ç¥é为ä»ä¹æ¯è¿æ ·ãä½ è½åè¯æè¿ä¸¤ç§ç±»æååå§åæ¹æ³çåºå«åï¼
åç
ä»ææ¯ä¸è¯´ï¼ä½ çç¨åºåæåæ¯å¯¹çï¼ä½æ¯å¨å¤§å¤æ°æ
åµä¸ï¼ä¸¤è
å®é
ä¸æ²¡æåºå«ãæ两个åå 使å¾æ们éæ©ç¬¬äºç§è¯æ³ï¼å®è¢«ç§°ä¸ºæååå§åå表ï¼ä¸ä¸ªåå æ¯å¿
é¡»çï¼å¦ä¸ä¸ªåªæ¯åºäºæçèèã
让æ们å
çä¸ä¸ç¬¬ä¸ä¸ªåå ââå¿
è¦æ§ã设æ³ä½ æä¸ä¸ªç±»æåï¼å®æ¬èº«æ¯ä¸ä¸ªç±»æè
ç»æï¼èä¸åªæä¸ä¸ªå¸¦ä¸ä¸ªåæ°çæé å½æ°ã
class CMember {
public:
CMember(int x) { ... }
};
å 为Cmemberæä¸ä¸ªæ¾å¼å£°æçæé å½æ°ï¼ç¼è¯å¨ä¸äº§çä¸ä¸ªç¼ºçæé å½æ°ï¼ä¸å¸¦åæ°ï¼ï¼æ以没æä¸ä¸ªæ´æ°å°±æ æ³å建Cmemberçä¸ä¸ªå®ä¾ã
CMember* pm = new CMember; // Error!!
CMember* pm = new CMember(2); // OK
å¦æCmemberæ¯å¦ä¸ä¸ªç±»çæåï¼ä½ ææ ·åå§åå®å¢ï¼ä½ å¿
须使ç¨æååå§åå表ã
class CMyClass {
CMember m_member;
public:
CMyClass();
};
//å¿
须使ç¨æååå§åå表
CMyClass::CMyClass() : m_member(2)
{
•••
}
没æå
¶å®åæ³å°åæ°ä¼ éç»m_memberï¼å¦ææåæ¯ä¸ä¸ªå¸¸é对象æè
å¼ç¨ä¹æ¯ä¸æ ·ãæ ¹æ®C++çè§åï¼å¸¸é对象åå¼ç¨ä¸è½è¢«èµå¼ï¼å®ä»¬åªè½è¢«åå§åã
第äºä¸ªåå æ¯åºäºæçèèï¼å½æåç±»å
·æä¸ä¸ªç¼ºççæé å½æ°åä¸ä¸ªèµå¼æä½ç¬¦æ¶ãMFCçCstringæä¾äºä¸ä¸ªå®ç¾çä¾åãåå®ä½ æä¸ä¸ªç±»CmyClasså
·æä¸ä¸ªCstringç±»åçæåm_strï¼ä½ æ³æå®åå§å为"yada yada."ãä½ æ两ç§éæ©ï¼
CMyClass::CMyClass() {
// 使ç¨èµå¼æä½ç¬¦
// CString::operator=(LPCTSTR);
m_str = _T("yada yada");
}
//使ç¨ç±»æåå表
// and constructor CString::CString(LPCTSTR)
CMyClass::CMyClass() : m_str(_T("yada yada"))
{
}
å¨ å®ä»¬ä¹é´æä»ä¹ä¸ååï¼æ¯çãç¼è¯å¨æ»æ¯ç¡®ä¿æææå对象å¨æé å½æ°ä½æ§è¡ä¹ååå§åï¼å æ¤å¨ç¬¬ä¸ä¸ªä¾åä¸ç¼è¯ç代ç å°è°ç¨CString:: Cstringæ¥åå§åm_strï¼è¿å¨æ§å¶å°è¾¾èµå¼è¯å¥åå®æãå¨ç¬¬äºä¸ªä¾åä¸ç¼è¯å¨äº§çä¸ä¸ªå¯¹CString:: CString(LPCTSTR)çè°ç¨å¹¶å°"yada yada"ä¼ éç»è¿ä¸ªå½æ°ãç»ææ¯å¨ç¬¬ä¸ä¸ªä¾åä¸è°ç¨äºä¸¤ä¸ªCstringå½æ°ï¼æé å½æ°åèµå¼æä½ç¬¦ï¼ï¼èå¨ç¬¬äºä¸ªä¾åä¸åªè°ç¨äºä¸ä¸ªå½æ°ãå¨ Cstringçä¾åéè¿æ¯æ æè°çï¼å 为缺çæé å½æ°æ¯å
èçï¼Cstringåªæ¯å¨éè¦æ¶ä¸ºå符串åé
å
åï¼å³ï¼å½ä½ å®é
èµå¼æ¶ï¼ãä½æ¯ï¼ä¸è¬èè¨ï¼ éå¤çå½æ°è°ç¨æ¯æµªè´¹èµæºçï¼å°¤å
¶æ¯å½æé å½æ°åèµå¼æä½ç¬¦åé
å
åçæ¶åãå¨ä¸äºå¤§çç±»éé¢ï¼ä½ å¯è½æ¥æä¸ä¸ªæé å½æ°åä¸ä¸ªèµå¼æä½ç¬¦é½è¦è°ç¨åä¸ä¸ªè´ è´£åé
大éå
å空é´çInitå½æ°ãå¨è¿ç§æ
åµä¸ï¼ä½ å¿
须使ç¨åå§åå表ï¼ä»¥é¿å
ä¸è¦çåé
两次å
åãå¨å
é¨ç±»åå¦intsæè
longsæè
å
¶å®æ²¡ææ é å½æ°çç±»åä¸ï¼å¨åå§åå表åå¨æé å½æ°ä½å
èµå¼è¿ä¸¤ç§æ¹æ³æ²¡ææ§è½ä¸çå·®å«ãä¸ç®¡ç¨é£ä¸ç§æ¹æ³ï¼é½åªä¼æä¸æ¬¡èµå¼åçãæäºç¨åºåè¯´ä½ åºè¯¥æ»æ¯ç¨åå§ åå表以ä¿æè¯å¥½ä¹ æ¯ï¼ä½æä»æ²¡æåç°æ ¹æ®éè¦å¨è¿ä¸¤ç§æ¹æ³ä¹é´è½¬æ¢æä»ä¹å°é¾ãå¨ç¼ç¨é£æ ¼ä¸ï¼æå¾åäºå¨ä¸»ä½ä¸ä½¿ç¨èµå¼ï¼å 为ææ´å¤ç空é´ç¨æ¥æ ¼å¼åå æ·»å 注éï¼ä½ å¯ä»¥ååºè¿æ ·çè¯å¥ï¼x=y=z=0;
æè
memset(this,0,sizeof(this));
注æ第äºä¸ªçæç»å¯¹æ¯éé¢å对象çã
å½æèèåå§åå表çé®é¢æ¶ï¼æä¸ä¸ªå¥æªçç¹æ§æåºè¯¥è¦åä½ ï¼å®æ¯å
³äºC++åå§åç±»æåçï¼å®ä»¬æ¯æç
§å£°æç顺åºåå§åçï¼èä¸æ¯æç
§åºç°å¨åå§åå表ä¸ç顺åºã
class CMyClass {
CMyClass(int x, int y);
int m_x;
int m_y;
};
CMyClass::CMyClass(int i) : m_y(i), m_x(m_y)
{
}
ä½ å¯è½ä»¥ä¸ºä¸é¢ç代ç å°ä¼é¦å
åm_y=Iï¼ç¶ååm_x=m_yï¼æåå®ä»¬æç¸åçå¼ãä½æ¯ç¼è¯å¨å
åå§åm_xï¼ç¶åæ¯m_y,ï¼å 为å®ä»¬æ¯æè¿æ ·ç顺 åºå£°æçãç»ææ¯m_xå°æä¸ä¸ªä¸å¯é¢æµçå¼ãæçä¾å设计æ¥è¯´æè¿ä¸ç¹ï¼ç¶èè¿ç§bugä¼æ´å èªç¶çåºç°ãæ两ç§æ¹æ³é¿å
å®ï¼ä¸ä¸ªæ¯æ»æ¯æç
§ä½ å¸æå®ä»¬ 被åå§åç顺åºå£°ææåï¼ç¬¬äºä¸ªæ¯ï¼å¦æä½ å³å®ä½¿ç¨åå§åå表ï¼æ»æ¯æç
§å®ä»¬å£°æç顺åºç½åè¿äºæåãè¿å°æå©äºæ¶é¤æ··æ·ã
温馨提示:答案为网友推荐,仅供参考