小编Phi*_*ier的帖子

带有std :: hash的C++ 11中的模糊类定义错误

我试着int Hash(string key)hash.cpp文件中定义,但是它给了我错误"hash is ambiguous".我不知道为什么.我已经#includes以多种方式分发了它,但它仍然无法正常工作.

[文件:hash.cpp]

#include "hash.h"
using namespace std;

int hash::Hash(string key)
{

}
Run Code Online (Sandbox Code Playgroud)

[文件:hash.h]

#include<string>
#include<cstdlib>
#include <iomanip>
using namespace std;

#ifndef HASH_H
#define HASH_H

class hash
{
   public:
       int Hash(string key);
};

#endif 
Run Code Online (Sandbox Code Playgroud)

[文件:main.cpp]

#include<iostream>
#include "hash.h"

using namespace std;

int main()
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++11

2
推荐指数
1
解决办法
637
查看次数

我们可以借助Java中的匿名类创建接口和抽象类的实例化吗?

我去采访了.采访者问我是否可以实例化一个接口和抽象类?据我所知,我说"不".但他说"是的,我们可以借助匿名课程".

你能告诉我怎么样吗?

java instantiation

2
推荐指数
1
解决办法
916
查看次数

虚函数+带基类指针的STL容器

我有一个名为Base的基类,它定义了一个虚函数.Derived类现在继承自它并实现/覆盖该虚函数.以下代码工作得很好:

Base* pB = new Derived();
pB->virtual_function(); // function of class Derived gets called -> good
Run Code Online (Sandbox Code Playgroud)

我的问题是,我现在将所有派生实例存储在STL容器中std::map<ID, Base*>.这似乎会导致问题,因为当我稍后迭代该容器并尝试每个Base*调用我的虚函数时,运行时只将指针识别为类型Base*并且不会调用Derived类中的重写实现.

有没有办法让它按预期工作,或者我在这里错过了一个关键点?

编辑1:请求了一些额外的代码,所以我们在这里:

std::map<ComponentType, Base*> m_Components;
// The factory instantiates a Derived* (via functors) and returns it as Base*
Base* pB = m_pComponentFactory->createComponent(this, type);
// Lazy insert (since there is no map entry with key 'type' at that stage) 
m_Components[type] = pB;

[...]

Base* pB;
for(ComponentMap::const_iterator it = m_Components.begin(); it …
Run Code Online (Sandbox Code Playgroud)

c++ virtual inheritance overriding stl

1
推荐指数
1
解决办法
1464
查看次数

保留QTextEdit中的光标位置

我有一个QTextEdit控件.它有一个最大限制(它可以容纳的最大字符数).为了实现这一点,我已经将一个插槽连接到textChanged()信号,当总字符数超过允许的最大值时,该信号将删除额外的字符.

有了这个,我在处理光标位置时遇到了一些问题.谁能告诉我如何在QTextEdit中保留光标位置?

c++ qt qlineedit

1
推荐指数
1
解决办法
4714
查看次数

标签 统计

c++ ×2

c++11 ×1

inheritance ×1

instantiation ×1

java ×1

overriding ×1

qlineedit ×1

qt ×1

stl ×1

virtual ×1