类作为参数给另一个类的成员函数使用注意点
来源:互联网 发布:mac book air常用软件 编辑:程序博客网 时间:2024/06/07 03:40
class A的成员函数要使用class B对象、指针、引用,必须在class B 的定义之后,而不是声明之后。不像C语言中,
函数的声明在调用该函数的函数之前,而函数定义可以在该函数之后。如下例子:
#include <iostream>
#include <algorithm>
using namespace std;
class B;
class A
{
private:
int a;
public:
A(int x=0):a(x){}
int getB(B *b);
};
int A::getB(B *b) //这个成员函数的定义在class B定义之前,会报以下错误:
{ //use of undefined type 'B'
return b->getb();//see declaration of 'B'
} //left of '->getb' must point to class/struct/union
class B
{
private:
int b;
public:
B(int x=0):b(x){}
int getb()
{
return b;
}
};
int main(void)
{
A a(2);
B b(3);
cout<<a.getB(&b)<<endl;
return 0;
}
改正:将class A使用到class B的成员函数的定义放在class B的定义之后,则程序可以正常运行。
发现了问题,小小总结下,避免以后忽视了这个问题而浪费大量时间做无用功。
- 类作为参数给另一个类的成员函数使用注意点
- 类的成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的
- 类的成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的
- linux多线程创建时使用类成员函数作为参数
- linux多线程创建时使用类成员函数作为参数
- linux多线程创建时使用类成员函数作为参数
- 类成员函数作为pthread_create函数参数
- 类成员函数作为pthread_create函数参数
- 数组作为函数参数的注意点2
- 任意类成员函数作为线程参数的封装
- 任意类成员函数作为线程参数的封装ex
- 类成员函数作为线程参数的用法
- js函数作为另一个函数的参数
- 一个函数作为另一个函数的参数
- 一个类的对象作为另一个类的数据成员时如何构造函数
- 一个类的成员作为另一个类的友元函数
- 如何使用带参数的对象作为类成员
- 关于将函数的地址作为参数传递给另一个函数调用
- 修改ftp默认端口
- java程序转exe工具
- C++ 异常 与 ”为什么析构函数不能抛出异常“ 问题
- Hibernate 调用sqlserver存储过程
- iOS 开发者必知的 75 个工具(译文)
- 类作为参数给另一个类的成员函数使用注意点
- 多线程编程
- eclipse开发的文件如何安装的手机上
- apktool反编译详细使用教程
- VS2010环境使用MFC操作读取excel2010文件
- Android深入浅出之Audio 第二部分 AudioFlinger分析
- 【热门主题:加勒比海盗桌面主题】
- 关于cvAbsDiff的那些事
- OCX控件的注册卸载,以及判断是否注册