无法将类对象创建为另一个类的成员
Can't create class object as another class' member
当我尝试创建一个 _queen
struct的模板数组堆栈类的实例作为n_queens
类的私人成员时,编译器会给我这些错误:
错误:预期','或'...'之前数字常数
错误:数字常数之前的预期标识符
在array_stack<_queen> some_stack(5);
线上都在线。当我将此堆栈创建为全局变量时,一切似乎都很好。
为什么不能在班上创建堆栈?
#ifndef N_QUEENS_H
#define N_QUEENS_H
#define N 10
template <class T>
class array_stack
{
private:
int top ;
int stack_size;
T* s ;
public:
array_stack(int s_size)
{
stack_size = s_size ;
s = new T[stack_size];
std::memset(s,1,sizeof(T)*stack_size);
top = -1 ;
}
~array_stack()
{
delete []s;
top = -1 ;
stack_size = 0;
}
void push(T value)
{
if (top == stack_size - 1 )
{
std::cout<<"Stack Full"<<std::endl ;
return;
}
top = top + 1 ;
*( s + top ) = value ;
}
T pop()
{
if (top == -1)
{
std::cout<<"Stack Empty"<<std::endl ;
return 0;
}
int temp = top ;
top = top - 1 ;
return *( s + temp );
}
bool isempty()
{
if (top == -1)
return true;
else
return false ;
}
void print_stack()
{
if (top == -1)
{
std::cout<<"Empty List"<<std::endl;
return;
}
int i = 0;
while (i <= top )
{
std::cout<< *(s + i++)<< std::endl;
}
}
};
//////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct
{
bool fail ;
int row ;
int column;
}_queen;
///////////////////////////////////////////////////////////////////////////////////////////////////
class n_queens
{
public:
n_queens();
virtual ~n_queens();
n_queens(const n_queens& other);
void solve();
_queen initialize_struct(int column,int row);
private:
int board[N][N];
int number_of_queens;
array_stack<_queen> some_stack(5);
};
/////////////////////////////////////////////////////////////////////////////////////////////////////
#endif // N_QUEENS_H
评论者@Whozcraig说的是您需要将(5)
放在其他地方,特别是:
n_queens::n_queens() : some_stack(5) { /*existing constructor body*/ }
相关文章:
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 无法将指向类的成员函数的函数指针作为参数传递给同一类的另一个成员函数
- 访问从联合与另一个成员集复制的联合中的一个成员是否未定义或未指定?
- 使用线程从另一个成员函数调用一个Member函数
- 如何通过指针将模板成员函数传递给另一个成员函数
- 初始化指针或引用成员变量以指向另一个成员
- 在另一个成员函数中调用成员函数时'int'之前的预期主表达式
- C 将成员函数作为参数传递给另一个成员函数
- 如何在另一个成员函数中修改具有常量返回类型的成员函数的返回值
- 从其后声明的另一个成员数据初始化成员数据是否为未定义行为
- 如何使一个成员变量等于在main()中设置的另一个成员变量
- 在另一个成员中动态添加类成员
- 将类成员函数作为参数从同一类的另一个成员函数传递
- 将成员函数指针作为另一个成员函数中的参数发送
- 如何从同一类的另一个成员函数调用函子
- 从另一个成员函数的实现调用成员函数
- 如何将带有 args 的成员函数作为参数传递给另一个成员函数
- C++ 成员函数错误 在另一个成员函数中使用时"Undeclared Identifier"
- 如何根据其中一个成员的值对结构数组进行排序,从而在另一个成员的基础上断开联系
- 初始化整数成员变量会导致更改另一个成员变量的地址