将类实例传递给函数

时间:2017-11-01 14:09:50

标签: c++ oop

我正在尝试将Student类的指针传递给二叉树的函数,但是我收到一条错误,说没有包含输入参数的函数,我认为这是因为我传入的是对象指针,但我不知道如何解决这个问题,任何帮助都将不胜感激。

这是我的代码:

demo.cpp:     #include

Me.Controls(TFNum & "Wet") = False

ETree.h

#include <fstream> //read files

 #include <cstdlib> //c standard library

 #include "ETree.h"

#include "Student.h"

#include <string>

using namespace assignment3;
using namespace std;


int main()
{
ETree<Student> * BinaryTree = new ETree<Student>();
delete BinaryTree;

ifstream input;
input.open("stuText.txt");

if (!input)
{
    cerr << "Text file not opened!";
    exit(1);
}
else
{
    string word;
    int num;
    Student* inst;
    while(input >> word >> num)
    {
        inst = new Student(word, num);
        BinaryTree->add(inst);
    }
}   
return 0;
}

ETree.template (相关部分)

#ifndef ETREE_H

#define ETREE_H

#include "BTNode.h"


 namespace assignment3
 {
 template <typename Student>

class ETree
{
    public:

    ETree();
    ETree(Student inst);

    ~ETree();

    bool add(Student inst);


    private:

        BTNode<Student>* rootPtr;
};
//template <typename object>
//std::istream& operator>>(std::istream& in, Queue<object>& queue);
 }

 #include "ETree.template"

 #endif

1 个答案:

答案 0 :(得分:0)

可能这可行.. 假设所有类和函数,因为OP给出数据输入不足。我希望你的意思是你要传递对象的指针。 代码:

#include <iostream>

class student
{ //whatever you want 
 };

 void pass_pointer (student* ptr)
 { // whatever you want
  }

 int main ()
 { 
     student* temp;
     pass_pointer (temp);
     return 0;
  }

您可以按照以下方法编写您想要做的任何事情,我的意思是二叉树,无论如何....希望您的问题得到解决。

如果这可以解决您的问题,那么值得称赞,如果这不能回答您的问题,请在下面的评论中说明,我会相应地进行编辑。