在函数中使用类对象

时间:2013-10-04 23:49:38

标签: c++ object

我是C ++的新手,我正在尝试制作一个程序来完成两个对象之间的转换。我有Class1Class2Convert。我想要一个接受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;
}

我对此有几个问题。我不想在其他类中使用转换函数,这就是为什么我创建了一个单独的类。

  1. 这是使用我不希望与其他类分开的函数的好方法
  2. 当我编译这个类时,它无法在Class2之前说“预期的初始化器,但是因为我想返回一个Class2对象而不是我必须如何定义该函数?
  3. 我再次成为C ++的新手,我确实有一些我想要学习的书,但他们并没有真正告诉我们如何使用这样的对象,所以如果这是一个愚蠢的问题,我道歉,我我完全错了。

2 个答案:

答案 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)