1

我是 C++ 新手,我正在尝试制作一个程序来在两个对象之间进行转换。我有Class1和。我想要一个接收 Class1 对象、将其转换为 Class2 对象并返回 Class2 对象的函数。现在我的转换类基本上是:Class2Convert

转换.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;
}

我对此有几个问题。我不想在其他类中有转换函数,这就是我创建一个单独的类的原因。

  1. 这是使用我不想与其他类分开的函数的好方法吗
  2. 当我编译这个类时,它没有说“在 Class2 之前的预期初始化程序,但由于我想返回一个 Class2 对象,这不是我必须如何定义函数吗?

再一次,我是 C++ 的新手,我确实有一些我正在尝试学习的书,但它们并没有真正说明如何使用这样的对象,所以如果这是一个愚蠢的问题,我很抱歉,我正在这样做完全错误。

4

2 回答 2

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;
}

请注意,这只是基础知识,可以在多个方面进行改进,但它应该可以帮助您开始并自己进行实验。

于 2013-10-04T23:56:29.093 回答
1

关于您的第二个问题,代码无法编译的原因是您忘记了Convert::Convert(). (或者也许是一个分号。但我假设你想定义 ctor)

于 2013-10-04T23:57:19.560 回答