【问题标题】:structure used in private using c++使用 C++ 私下使用的结构
【发布时间】:2015-11-24 00:25:42
【问题描述】:

我正在尝试运行此代码,但它引发了错误。想不通怎么解决。我是结构新手,我正在尝试制作链接列表程序。

错误:

 S_linklist1.cpp: In member function ‘linklist::NODE linklist::create_node(int)’: S_linklist1.cpp:23:11:
   error: could not convert ‘temp’ from ‘linklist::NODE*’ to ‘linklist::NODE’ return temp;
S_linklist1.cpp: In member function ‘void linklist::add(int)’: S_linklist1.cpp:35:7:
  error: cannot convert ‘linklist::NODE’ to ‘linklist::NODE*’ in assignment temp1=create_node(data);

程序:

#include<iostream>
#include<cstdlib>

using namespace std;

class linklist{
    private: struct NODE {
            int data;
            struct NODE* link;
        };
        struct NODE* START=NULL;

        NODE create_node(int s_data)
        {   
            struct NODE* temp;
            temp=new NODE;

            temp->data=s_data;
            temp->link=NULL;

            return temp;

        }

public : void add(int);
};

void linklist :: add(int data)
{
    struct NODE* temp1;
    temp1=new NODE;

    temp1=create_node(data);
    cout<<"Return success"<<"\n";
}

int main()
{
    linklist obj;
    obj.add(10);
}

请帮我解决这个问题。谢谢

【问题讨论】:

  • 这是错误 S_linklist1.cpp: In member function 'linklist::NODE linklist::create_node(int)': S_linklist1.cpp:23:11: error: could not convert 'temp' from 'linklist::NODE*' 到 'linklist::NODE' 返回 temp; ^ S_linklist1.cpp:在成员函数 'void linklist::add(int)' 中:S_linklist1.cpp:35:7:错误:无法在赋值 temp1=create_node 中将 'linklist::NODE' 转换为 'linklist::NODE*' (数据);
  • 从评论中添加错误信息

标签: object structure private


【解决方案1】:

变化

NODE create_node(int s_data)

NODE *create_node(int s_data)

它是在g++4.8.4上编译的。

顺便说一句,'struct NODE' 在 C++ 中可以只是'NODE'。

【讨论】:

  • S_linklist1.cpp:在成员函数'linklist::NODE linklist::create_node(int)'中:S_linklist1.cpp:23:11:错误:无法从'linklist::转换'temp' NODE*' 到 'linklist::NODE' 返回 temp; ^ S_linklist1.cpp:在成员函数 'void linklist::add(int)' 中:S_linklist1.cpp:35:7:错误:无法在分配 temp1=create_node 中将 'linklist::NODE' 转换为 'linklist::NODE*' (数据);
  • 只需将 * 放在 create_node 前面即可返回指针而不是实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
相关资源
最近更新 更多