程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C++類與類的對象互相包含問題

C++類與類的對象互相包含問題

編輯:關於C語言
 

不知道我這樣命名這個問題清楚不~

MFC裡面遇到一個問題,我把它簡化為一個控制台程序:

A類定義了B類的對象,B類定義了A類的對象的指針(this),並想通過它訪問A類的成員函數

解決代碼如下:
 

#include <iostream>
using namespace std;

class A;

class B
{
public:
A* pa;
void funb();
};

class A
{
public:
B b;
A()
{
b.pa = this;
}
void funa()
{
cout << "執行funa函數" << endl;
}
};

void B::funb()
{
pa->funa();
}

void main()
{
A a;
a.b.funb();
}
 

運行結果:

執行funa函數
Press any key to continue_

找到了,在MFC中此問題的處理辦法:

假設MFC工程為Test

在CTestDlg.h裡面添加A.h,構造A類的一個對象
在A類頭文件中增加一個CTestDlg的對象的指針,在頭文件裡A類類名前加class CTestDlg的聲明,然後再在A.cpp裡面加(注意順序!):

#include “Test.h”
#include “A.h”
#include “TestDlg.h”

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved