在函数中使用类对象
Using class objects in functions
我是C++新手,我正在尝试制作一个程序来在两个对象之间进行转换。我有Class1
,Class2
和Convert
。我想要一个函数,它接受一个 Class1 对象,将其转换为 Class2 对象并返回 Class2 对象。现在我的转换类基本上是:
转换.h
#ifndef Convert_H
#define Convert_H
#include "Class1.h"
#include "Class2.h"
class Convert
{
public:
Convert();
Class1 c1;
Class2 c2;
Class2 C1ToC2(Class1);
};
#endif // Convert_H
转换.cpp
#include "Convert.h""
#include "Class1.h"
#include "Class2.h"
Convert::Convert()
Class2 Convert::C1ToC2(Class1 c1)
{
//conversions
return c2;
}
我对此有几个问题。我不想在其他类中使用转换函数,这就是我创建一个单独的类的原因。
- 这是使用我不想与其他类分开的函数的好方法吗
- 当我编译这个类时,它失败了,说"Class2 之前的预期初始值设定项,但由于我想返回一个 Class2 对象,这不是我必须定义函数的方式吗?
再一次,我是C++新手,我确实有几本书,我正在努力学习,但它们并没有真正告诉如何使用这样的对象,所以如果这是一个愚蠢的问题,我深表歉意,我完全错了。
在C++中,你可以简单地直接使用一个函数,你不需要类Convert
。
在Convert.h
:
#ifndef Convert_H
#define Convert_H
#include "Class1.h"
#include "Class2.h"
// declare the function
Class2 convert( const Class1& input );
#endif
在Convert.cpp
:
#include "Convert.h"
// define the function
Class2 convert( const Class1& input )
{
Class2 result;
// do conversion
return result;
}
请注意,这只是基础知识,可以在多个方面进行改进,但它应该可以帮助您开始并自行进行实验。
关于你的第二个问题,代码无法编译的原因是因为你忘记了Convert::Convert()
后的大括号。(或者可能是分号。但我假设你想定义 ctor(
相关文章:
- 如何创建对象函数指针C++映射?
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- 如何将对象函数的实例传递给另一个函数
- 调用模板函数的问题"No matching function for call"参数:迭代器、对象函数
- makefile对我的名称空间对象/函数/构造函数的不确定引用
- 将对象函数转换为函数指针
- 非对象函数/类函数C++
- 线程对象函数 C++
- C 将成员对象函数分配给类成员功能
- 使用基本指针调用派生对象函数
- 可以(通过编译器)使用多少个线程来初始化全局对象(函数main之前)
- C++类对象函数
- 对对象::函数的未定义引用
- 无法弄清楚将多个对象函数作为单独的线程调用的语法
- 在提升作用域出口中调用对象函数
- 使用基指针来使用派生对象函数
- 在for_each lambda 中调用对象函数
- C++:: 模板函数 - 从对象函数获取对象的地址
- Qt5 未解析的外部静态元对象函数
- 通过变量使用对象和对象函数