首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C++类没有名为“blah”的成员

C++类没有名为“blah”的成员
EN

Stack Overflow用户
提问于 2011-09-24 20:01:05
回答 3查看 17.5K关注 0票数 0

我有一个.h文件,其中包含以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#ifndef CS240_LINKED_LIST_H
#define CS240_LINKED_LIST_H

#include <string>

//! LLNode implements a doubly-linked list node
class LLNode {
        friend class LinkedList;
    public:
    
        LLNode(const std::string & v, LLNode * p, LLNode * n) :
          value(v), prev(p), next(n)
        {
        }
    
    private:
        std::string value;        //!< value stored in the node
        LLNode * prev;            //!< pointer to previous node in the list
        LLNode * next;            //!< pointer to next node in the list
};


//! LinkedList implements a doubly-linked list
class LinkedList
{
    public:
    
        //!  No-arg constructor.  Initializes an empty linked list
        LinkedList();
    
    
        //!  Copy constructor.  Makes a complete copy of its argument
        LinkedList(const LinkedList & other);
    
    private:
        //!  two dummy nodes to keep track of the beginning and end of the list.
        LLnode beginning;
        LLnode end;
        int size;
};

#endif

在cpp文件中,我有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include "LinkedList.h"

LinkedList::LinkedList(){
    this->beginning.prev = NULL;
    this->beginning.next = this->end;
    this->end.prev = this->beginning;
    this->end.next = NULL;
}

下面是输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>g++ -o LinkedList.o LinkedList.cpp
In file included from LinkedList.cpp:1:
LinkedList.h:37: error: 'LLnode' does not name a type
LinkedList.h:38: error: 'LLnode' does not name a type
LinkedList.cpp: In constructor 'LinkedList::LinkedList()':
LinkedList.cpp:4: error: 'class LinkedList' has no member named 'beginning'
LinkedList.cpp:5: error: 'class LinkedList' has no member named 'beginning'
LinkedList.cpp:5: error: 'class LinkedList' has no member named 'end'
LinkedList.cpp:6: error: 'class LinkedList' has no member named 'end'
LinkedList.cpp:6: error: 'class LinkedList' has no member named 'beginning'
LinkedList.cpp:7: error: 'class LinkedList' has no member named 'end'

我不知道该怎么解决这个问题。否则我该如何设置开始和结束对象?让你知道,我是一名学习C++的Java程序员。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-24 20:06:57

  • 您将LLNode拼写为LLnode.
  • You需要向LLNode类添加默认构造函数
  • 您需要获取this->beginningthis->end成员在LinkedList类中的地址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LinkedList::LinkedList(){
    this->beginning.prev = NULL;
    this->beginning.next = &this->end;
    this->end.prev = &this->beginning;
    this->end.next = NULL;
}
票数 4
EN

Stack Overflow用户

发布于 2011-09-24 20:06:21

您需要声明构造函数。尝试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class LinkedList
{
    private:
        LLnode beginning;
        LLnode end;
    public:
        LinkedList();
};
票数 0
EN

Stack Overflow用户

发布于 2011-09-24 20:06:45

在类声明中没有LinkedList::LinkedList()声明。

这应该会给你一个不同的错误;g++给了我

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
error: definition of implicitly-declared ‘LinkedList::LinkedList()

你确定你已经发布了你正在编译的代码吗?将你的代码缩小到一些小但完整的部分,然后将确切的源文件复制并粘贴到你的问题中。(例如,没有声明LLnode)。给我们展示一些我们可以自己尝试的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7541548

复制
相关文章
C++类的成员函数 | 成员函数
在C++中,类的成员函数是函数的一种,它有返回值和函数类型,它与一般函数的区别只是:
小林C语言
2021/01/18
1.9K0
C++类的成员函数 | 成员函数
C++ 类的静态成员
我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。 静态成员在类的所有对象中是共享的。如果不存在其他的初始化语句,在创建第一个对象时,所有的静态数据都会被初始化为零。我们不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化,如下面的实例所示。
用户7272142
2023/10/19
2580
【C++】C++类的静态成员
比如我们现在要设计一款战争游戏,在这款游戏中,分为多个兵种,每个兵种都有一定数量的士兵,游戏过程中,每隔一定时间每个兵种都会产生一定数量的士兵,由于战争的消耗,每个兵种的士兵都会减少。 为了使情节更逼真,引入了士气这个概念,当士气比较高的时候,这个兵种的战斗力就比较强,士气低的时候,这个兵种的战斗力就比较弱。 士兵的士气受很多因素影响,其中一个最直接的因素就是和这个兵种的数量直接相关,当这个兵种的士兵比较多,这个兵种的士气就比较高,战斗力就比较强。如果说当前的兵种士兵比较少,那么士气就比较弱,战斗力也比较弱。
谙忆
2021/01/21
5580
C++:30 ---C++类成员,成员函数的内存布局
这里要指出的是大家可以看到静态成员函数和静态成员变量sx的地址都是0x00007FF开头的,实际上他们都在全局数据区域存储(全局变量,静态变量),如果你有耐心,可以断点查看下栈空间内的局部变量i的地址:
用户3479834
2021/02/03
1.3K0
C++:30 ---C++类成员,成员函数的内存布局
C++类成员指针
成员指针是C++引入的一种新机制,它的申明方式和使用方式都与一般的指针有所不同。成员指针分为成员函数指针和成员数据指针。
恋喵大鲤鱼
2018/08/03
1.4K0
C++静态类成员
静态类成员通常适用于当一个类的所有对象之间需要共享同一份数据的时候,这样子能节省空间,提高效率。
灯珑LoGin
2022/10/31
6690
C++ 类成员指针
成员指针是 C++ 引入的一种新机制,它的申明方式和使用方式都与一般的指针有所不同。成员指针分为成员函数指针和数据成员指针。
恋喵大鲤鱼
2022/11/29
8010
C++:09---类静态成员、类常量成员
一、类静态成员(static) 先介绍一下什么是静态变量、静态函数 静态局部变量:存在域(全局数据区),作用域(块作用域) 静态全局变量:存在域(全局数据区),作用域(整个文件) 静态函数:存在域(全局数据区),作用域(整个文件) static int a=10;//全局静态变量 static void add();//静态函数 int main() { { static int b=10;//局部静态变量 } } 特点: 静态static修饰的变量、函数,只需要初始化一
用户3479834
2021/02/03
1.6K0
C++:09---类静态成员、类常量成员
server.c:5491:15: 错误:‘struct redisServer’没有名为‘maxmemory’的成员
错误原因是gcc版本的问题,由于我使用的redis6.0版本的。查看gcc版本,如下所示:
别先生
2021/03/02
4.4K0
C++类的静态数据成员和静态成员函数
一些类对象可能会具有一些相同的属性,如果用普通数据成员来描述这些相同的属性,这意味着我们需要给每个对象的这个数据成员设定相同的值,如果改变类对象相同的属性,那么意味着我们需要对它们统一操作,这就有可能出现它们的值会不一样的情况,如果用全局变量来描述它们相同的属性,就会破坏类的独立性。
叶茂林
2023/07/30
1930
C++类成员反射实现
日常编程中有这样的需求,一个是为了调试,二个是为了在不同模块运行时得到类的属性用于显示及修改。但C++未提供原生的反射机制,所以有了以下思考。
sofu456
2020/02/18
1.7K0
C++类成员的访问权限以及类的封装
C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。所谓访问权限,就是你能不能使用该类中的成员。
芯动大师
2023/10/14
3810
C++类成员的访问权限以及类的封装
C++ 成员对象和封闭类
上例中,如果 CCar 类不定义构造函数,则会使用默认的无参构造函数,那么下面的语句会编译出错:
小林coding
2020/03/31
6920
函数模板之名为List的类模板—C++
/* 功能:编写一个名为List的类模板 作者:WindCoder 日期:2013-12-12 */ #include <iostream> using namespace std; template <class T> class List { public: List(); ~List(); bool Add(T a); void Clear(); void Display (); bool Del(int num); bool Addone(T a,int pos); bool Fin
WindCoder
2018/09/19
1.4K0
C++:33---类成员指针
成员指针概述: 当初始化一个这样的指针时,我们令其指向类的某个成员,但是不指定该成员所属的对象 直到使用成员指针时,才提供成员所属的对象 成员指针是指可以指向类的非静态成员的指针 一般情况下,指针指向一个对象,但是成员指针指向的是类的成员,而不是类的所创建出的对象 类的静态成员不属于任何对象,因此无需特殊的指向静态成员的指针,指向静态成员的指针与普通指针没有任何区别 成员指针的类型囊括了类的类型以及成员的类型: 下面我们定义一个类,作为本文讲解的基础: class Screen { public: type
用户3479834
2021/02/03
9010
《挑战30天C++入门极限》C++类静态数据成员与类静态成员函数
C++类静态数据成员与类静态成员函数   在没有讲述本章内容之前如果我们想要在一个范围内共享某一个数据,那么我们会设立全局对象,但面向对象的程序是由对象构成的,我们如何才能在类范围内共享数据呢?   这个问题便是本章的重点:   声明为static的类成员或者成员函数便能在类的范围内共同享,我们把这样的成员称做静态成员和静态成员函数。   下面我们用几个实例来说明这个问题,类的成员需要保护,通常情况下为了不违背类的封装特性,我们是把类成员设置为protected(保护状态
landv
2019/07/15
7010
C++类自动提供的特殊成员函数
ANSI C允许结构赋值,⽽C++允许类对象赋值,这是通过⾃动为类重载赋值运算符实现的。
Alan_1
2023/04/30
7240
c++之类的成员变量和类的成员函数是分开存储的
全局数据区(data area),代码区(code area),栈区(stack area),堆区(heap area)(即自由存储区)。
西西嘛呦
2020/08/26
2K0
C++中的空类默认包含哪些类成员函数
空类 class Empty { } 空类包含的函数(6个) class Empty { public: Empty(); // 缺省构造函数// Empty( const Empty& ); // 拷贝构造函数// ~Empty(); // 析构函数// Empty& operator=( const Empty& ); // 赋值运算符// Empty* operator&(); // 取址运算符 const Empty* operator&() const; // 取址运算符 const };
全栈程序员站长
2021/04/07
1.6K0
C++类大小和静态成员/方法
类大小计算 空类的大小为1字节 一个类中,虚函数本身、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的存储空间的 字节对齐的问题。与C语言一致 没有继承的时候,存在虚函数则需要加上虚指针vptr(+4个字节),如果有多个也只需要加上一个,因为只有一个虚指针。 虚基类指针:如果是虚继承,则子类的大小为:虚基类的大小 + 4个字节(用来存放指向虚基对象的指针)+子类新增成员的大小。 示例 #include <iostream> using namespace std; /** * 8=4(x)
用户2929716
2018/08/23
7340

相似问题

c++:类X没有名为Y的成员

20

C++:类"X“没有名为"Y”的成员

15

python如果文件名为"blah“和"blah”

20

Ember.JS:没有名为blah的路由

11

C++类错误“‘const class Number”没有名为“intValue”的成员

123
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文