我是C ++的新手,我正在尝试制作一个程序来完成两个对象之间的转换。我有Class1
,Class2
和Convert
。我想要一个接受Class1对象的函数,将其转换为Class2对象并返回Class2对象。现在我的转换类基本上是:
CONVERT.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
Convert.cpp
#include "Convert.h""
#include "Class1.h"
#include "Class2.h"
Convert::Convert()
Class2 Convert::C1ToC2(Class1 c1)
{
//conversions
return c2;
}
我对此有几个问题。我不想在其他类中使用转换函数,这就是为什么我创建了一个单独的类。
我再次成为C ++的新手,我确实有一些我想要学习的书,但他们并没有真正告诉我们如何使用这样的对象,所以如果这是一个愚蠢的问题,我道歉,我我完全错了。
答案 0 :(得分:3)
在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;
}
请注意,这只是基础知识,可以在几个方面进行改进,但它应该可以帮助您开始自己的实验。
答案 1 :(得分:1)
关于你的第二个问题,代码无法编译的原因是因为你忘记了Convert::Convert()
之后的大括号。 (或者也许是分号。但我认为你想要定义ctor)