Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将类实例传递到函数中_C++_Oop - Fatal编程技术网

C++ 将类实例传递到函数中

C++ 将类实例传递到函数中,c++,oop,C++,Oop,我试图将学生类的指针传递到二叉树的函数中,但是我得到了一个错误,说没有包含输入参数的函数,我想这是因为我传递了一个对象指针,但是,我不知道如何解决这个问题,如果有任何帮助,我将不胜感激 这是我的密码: demo.cpp: #包括 #include <fstream> //read files #include <cstdlib> //c standard library #include "ETree.h" #include "Student.h" #incl

我试图将学生类的指针传递到二叉树的函数中,但是我得到了一个错误,说没有包含输入参数的函数,我想这是因为我传递了一个对象指针,但是,我不知道如何解决这个问题,如果有任何帮助,我将不胜感激

这是我的密码:

demo.cpp: #包括

#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;
}
#包括//读取文件
#include//c标准库
#包括“ETree.h”
#包括“Student.h”
#包括
使用名称空间分配3;
使用名称空间std;
int main()
{
ETree*BinaryTree=new ETree();
删除二叉树;
ifstream输入;
打开(“stuText.txt”);
如果(!输入)
{
cerr>word>>num)
{
inst=新生(单词,数字);
二进制树->添加(inst);
}
}   
返回0;
}
ETree.h

#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
\ifndef ETREE\H
#定义ETREE_H
#包括“BTNode.h”
命名空间分配3
{
模板
类ETree
{
公众:
ETree();
ETRE(学生研究所);
~ETree();
bool add(学生研究所);
私人:
BTNode*rootPtr;
};
//模板
//std::istream&operator>>(std::istream&in、Queue&Queue);
}
#包括“ETree.template”
#恩迪夫
ETree.template (有关部分)

模板
bool ETree::添加(学生说明)
{
if(rootPtr==NULL)
{
rootPtr=新的BTNode(inst);
返回true;
}
其他的
{
返回rootPtr->add(inst);
}
}
可能是这样的,但这样做可以奏效。。 由于OP提供的数据输入不足,因此假定所有类和函数。我希望您的意思是希望传递对象的指针。 代码:

#包括
班级学生
{//你想要什么都行
};
无效通过指针(学生*ptr)
{//你想要什么都行
}
int main()
{ 
学生*临时工;
通过指针(温度);
返回0;
}
你可以按照下面的方法来编程,不管你想做什么,我是说二叉树,不管什么……希望你的问题得到解决


如果这能解决您的问题,那就太好了,如果这不能回答您的问题,请在下面的评论中这样说,我将相应地对其进行编辑。

发布代码和错误,以及广告文本。对两者的模糊描述并没有多大帮助。没有人能在看不到实际代码的情况下帮助你。你的标题是“实例”,但问题是“指针”。是否有一个函数需要一个实例,但您正在向它传递一个指针?没有完成问题的编写并意外提交它谢谢您的回复,这次没有收到任何错误!哦,不,我不能投票,因为每个人都恨我对不起:(
template <typename Student>
bool ETree<Student>::add(Student inst)
{
    if(rootPtr == NULL)
    {
        rootPtr = new BTNode<Student>(inst);
        return true;
    }
    else
    {
        return rootPtr->add(inst);
    }

}
#include <iostream>

class student
{ //whatever you want 
 };

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

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