正在头类中为私有变量创建内联函数
Creating inline function in header class to a private variable
我必须制作一个链表。首先,我不确定我做这件事是否正确。但基本上,该项目说我不允许创建.cpp文件,但我必须通过.h文件创建4个内联语句。
class Queue{
private:
struct QueueNode{
int size;
std::string party;
QueueNode *next;
};
QueueNode *front;
QueueNode *rear;
public:
// Constructor
Queue();
// Destructor
~Queue();
// Queue operations
std::string getPartyName() const { return party; } // This and next 3 lines give error with the private variables
int getSize() const { return size; }
void setPartyName(std::string p) const{ party = p; }
void setSize(int s) const{ size = s; }
};
你已经成功了一半。您需要在头文件中声明函数,正如您所做的那样。
缺少的步骤是,您不需要在类主体中定义函数,而是使用带有范围解析运算符和内联运算符的类名在类声明下面定义它们。
您缺少的另一部分是在Queue类中声明可能用于QueueNode结构的函数。
class Queue{
private:
struct QueueNode{
int size;
std::string party;
QueueNode *next;
};
QueueNode *front;
QueueNode *rear;
public:
// Constructor
Queue();
// Destructor
~Queue();
// Queue operations
std::string getPartyName( const QueueNode * const node ) const;
int getSize( const QueueNode * const node ) const;
void setPartyName( QueueNode & out_node, std::string & p);
void setSize( QueueNode & out_node, int s);
};
inline std::string Queue::getPartyName( const QueueNode * const node ) const
{
return node->party;
}
inline int getSize( const QueueNode * const node ) const {
return node->size;
}
inline void Queue::setPartyName( QueueNode & out_node, std::string & p) {
out_node.party = p;
}
inline void Queue::setSize( QueueNode & out_node, int s) {
out_node.size = s;
}
目前还不清楚您打算为哪些节点设置这些值,所以我将在函数中填充一些假设。
不管怎样,我想你都明白了。如果要在头类中定义内联函数,则不能在类本身中定义正文。您必须在类的主体之外以内联方式声明它,这是编译器建议。我知道我没有完全定义链表的功能,我将把它留给你。但是,这应该回答内联问题。
相关文章:
- 为什么在堆栈和堆上创建变量会产生相同的程序集代码?
- 如何在循环中动态创建变量(c++)
- 创建变量之间的运算符排列
- 是否有一种方法可以调用一个函数,而不会创建变量,而不会创建变量
- 在使用该名称创建变量后调用本机 C 函数
- C++ 仅当模板参数为 true 时才创建变量
- 创建变量实例有什么不同?
- 是否可以在不为该数组创建变量的情况下将数组作为参数传递到函数中?
- 为什么在默认构造函数中使用括号会导致创建变量?
- 动态创建变量名称的替代方法
- C++:使用void创建变量
- 如何在Arduino中从SD卡创建变量
- 应该如何使用C++11 Regex从存储在文本文件中的表中创建变量
- 从文本文件导入的不同线类型创建变量
- 创建变量的别名
- 避免在此模板代码中创建变量
- 类方法中创建变量的作用域
- 动态创建变量c++ /cli . net
- 使用来自文件的输入创建变量
- 创建变量名别名的方法