Header.h
#pragma once
typedef struct tagPreSt
{
int nVal;
char szData[32];
}PreSt;
class preClass
{
public:
int nVal;
char szData[32];
};
testPre.h
#pragma once
typedef struct tagPreSt PreSt;
class PreClass;
class testPre
{
public:
testPre(void);
~testPre(void);
public:
PreSt* m_pSt;
preClass* m_pClass;
};
testPre.cpp
#include "Header.h"
#include "testPre.h"
#include <iostream>
testPre::testPre(void)
{
m_pSt = new PreSt;
m_pClass = new preClass;
m_pSt->nVal = 5;
strcpy(m_pSt->szData, "hello struct");
m_pClass->nVal = 10;
strcpy(m_pClass->szData, "hello class");
}
testPre::~testPre(void)
{
delete m_pSt;
delete m_pClass;
}
main.cpp

本文通过Header.h, testPre.h, testPre.cpp 和 main.cpp 四个文件,展示了C++中前置声明类(class)和结构体(struct)的运用。主要讨论了在头文件相互包含时的顺序要求,以及如何避免头文件循环依赖问题。测试代码中,由于类封装不足,导致main.cpp也需要包含头文件,强调了良好的封装和组织代码的重要性。"
112285849,10535572,迈德威视Gige相机使用与二次开发教程,"['gige相机二次开发', '工业相机', '图像传输', '网络设置']
最低0.47元/天 解锁文章
3694

被折叠的 条评论
为什么被折叠?



