mfc 如何在自己建立的头文件和源文件中使用其他类的成员变量
时间: 2024-03-09 07:51:08 浏览: 21
如果你想在自己建立的头文件和源文件中使用其他类的成员变量,需要包含这些类的头文件。在头文件中使用其他类的成员变量需要在头文件中添加对应的类的前向声明,或者直接包含对应的头文件。
例如,如果你想在自己建立的头文件和源文件中使用名为 `OtherClass` 的类的成员变量,你需要在头文件中添加如下前向声明:
```c++
class OtherClass;
```
或者直接包含 `OtherClass` 的头文件:
```c++
#include "OtherClass.h"
```
然后就可以在你自己的头文件和源文件中使用 `OtherClass` 的成员变量了。例如,如果 `OtherClass` 有一个名为 `otherVar` 的成员变量,你可以在你自己的代码中通过 `OtherClass` 实例来访问它:
```c++
OtherClass other;
int var = other.otherVar;
```
相关问题
mfc 如何在自己建立的头文件和源文件中运用成员变量
在 MFC 中,在自己建立的头文件和源文件中使用成员变量可以按照以下步骤进行:
1. 在头文件中声明你的类并定义成员变量。例如,如果你想要定义一个名为“CMyClass”的类并包含一个整数型成员变量“m_nValue”,则在头文件中添加以下代码:
```c++
#pragma once
class CMyClass
{
public:
CMyClass();
~CMyClass();
int m_nValue;
};
```
2. 在源文件中实现你的类。例如,如果你想要实现一个名为“CMyClass”的类,则在源文件中添加以下代码:
```c++
#include "stdafx.h"
#include "MyClass.h"
CMyClass::CMyClass()
{
m_nValue = 0; // 初始化成员变量
}
CMyClass::~CMyClass()
{
// 析构函数
}
```
3. 在需要使用你的类的地方,包含你的头文件。例如,如果你想要在一个名为“MainDlg”的对话框类中使用“CMyClass”类,则在“MainDlg.h”文件中添加以下代码:
```c++
#include "MyClass.h"
```
4. 现在,你可以在“MainDlg.cpp”文件中创建一个“CMyClass”对象并访问其成员变量了。例如:
```c++
void CMainDlg::OnButtonClicked()
{
CMyClass objMyClass;
objMyClass.m_nValue = 10; // 访问成员变量
}
```
以上就是在 MFC 中在自己建立的头文件和源文件中运用成员变量的步骤。
类的操作符重载分别在头文件和源文件中怎么写?
在 C++ 中,类的操作符重载通常也分为头文件和源文件两部分。
在头文件中,我们通常只需要声明该操作符的原型,而在源文件中则需要实现该操作符的具体功能。
以重载运算符 `+` 为例,操作符重载的头文件和源文件的写法如下:
在头文件中,声明该操作符的原型:
```c++
// MyClass.h
#ifndef MYCLASS_H
#define MYCLASS_H
class MyClass {
public:
MyClass operator+ (const MyClass& other) const;
private:
int value;
};
#endif
```
在源文件中,实现该操作符的具体功能:
```c++
// MyClass.cpp
#include "MyClass.h"
MyClass MyClass::operator+ (const MyClass& other) const {
MyClass result;
result.value = this->value + other.value;
return result;
}
```
需要注意的是,如果该操作符重载函数是类的成员函数,我们需要在函数名前面加上 `operator` 关键字,并在函数实现时使用 `::` 运算符指定该函数属于哪个类。
而如果该操作符重载函数是类的非成员函数,则需要在函数名前面加上 `friend` 关键字,并在函数实现时不需要指定该函数属于哪个类。
例如,重载运算符 `<<` 时,我们通常会将其定义为一个非成员函数,并声明为该类的友元函数,如下所示:
```c++
// MyClass.h
#ifndef MYCLASS_H
#define MYCLASS_H
#include <iostream>
class MyClass {
public:
friend std::ostream& operator<< (std::ostream& os, const MyClass& obj);
private:
int value;
};
#endif
```
```c++
// MyClass.cpp
#include "MyClass.h"
std::ostream& operator<< (std::ostream& os, const MyClass& obj) {
os << obj.value;
return os;
}
```