c++如何在没有新的情况下启动
c++ How to initiate without new?
所以我试图创建一个由两个堆栈组成的类。我想为它创建一个构造函数,并且我希望堆栈中最初有0个元素:
class twoStacks {
std::stack<int> mins;
std::stack<int> values;
twoStacks():
{
}
};
当我编译这个时,我得到一个错误,"错误:预期的类成员或基类名称。"为什么我不能有一个空的构造函数?(我用的是clang-600.0.56)
我是否首先需要一个构造函数,因为我只想启动空堆栈?当我把元素推到堆栈上时,这会引起问题吗?
有没有关于如何构建这样一个类的指导方针?我的意思是,我应该使用指向堆栈的两个指针吗?如果我使用指针,我将使用new
关键字进行初始化。首选哪种方式?
例如,如果这个类有另一个成员变量/值int size
,我会将其列表初始化为0。但当它是一个容器时,我该怎么办?我假设如果有对流,无论它们是堆栈、向量还是任何其他容器都是一样的(如果我错了,请纠正我)。
如果您不希望编译器向您提供错误消息,则需要编写正确的代码。
删除twoStacks()
之后和{
之前的冒号。
或者添加有效的初始化程序以默认构造成员
twoStacks(): mins(), values()
{
}
或者(因为编译器会为您生成一个默认构造函数,在大多数情况下,您还没有声明另一个构造函数),只需完全删除构造函数的声明和定义。
您需要删除twoStacks()
之后的冒号。除非显式调用成员变量的构造函数,否则编译器将生成默认构造它们的代码。
相关文章:
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- C++ POCO - 如何在不使用 run() 方法的情况下启动线程池上的线程?
- 有没有办法在不重新启动或注销的情况下加载游标?
- (Windows 10) 在不更新的情况下重新启动C++
- 为什么在 var 未更新的情况下使用,仅在启动 var 后打印
- 在不定义类的情况下将启动的类传递给函数
- RCpp:如何在不重新启动R的情况下重新加载重新编译的C++代码
- 在存在分配器重新启动的情况下,使用null_mutex Safe是boost :: fast_pool_allocato
- Visual Studio:如何在没有控制台窗口的情况下启动项目
- 在不调试的情况下启动,与从.exe启动相同
- Qt/QML:如何在不重新启动应用程序的情况下"switch to"或"open"另一个 QML 文件?
- 如何在不闪烁的情况下以自定义大小启动控制台
- 在没有权限的情况下在登录时启动程序(Fedora 20)
- 如何让火狐在不重新启动的情况下重新加载user_pref
- 是否可以在不使用 SIGHUP 的情况下立即启动 pthread
- c++如何在没有新的情况下启动
- Mac GUI应用程序如何在不使用Sparkle的情况下重新启动自己?
- Visual C++SSE函数在没有调试器的情况下启动时速度较慢
- 是否可以在不显示窗口的情况下启动命令行应用程序
- 如何在没有控制台窗口的情况下从c++启动.jar文件