小编mik*_*bal的帖子

强制调用基类虚函数

我有一些像这样的事件

class Granpa // this would not be changed, as its in a dll and not written by me
{
public:

   virtual void onLoad(){}

}

class Father :public Granpa // my modification on Granpa
{
public:

    virtual void onLoad()
    {
       // do important stuff
    }

}

class Child :public Father// client will derive Father
{

   virtual void onLoad()
   {
       // Father::onLoad(); // i'm trying do this without client explicitly writing the call

       // clients code
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法强制调用onLoad而不实际编写Father :: …

c++ virtual inheritance class function

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

从鼠标坐标获取行号和列号

我在浏览器文本编辑器中使用 Ace。

editor.on("mousemove", function (e)
{
  // use clientX clientY to get row and column locations
});
Run Code Online (Sandbox Code Playgroud)

从 clientX clientY 坐标,我需要编辑器上的实际行号和列号。

查看 Ace api 但找不到任何相关内容。

你知道我有什么办法可以做到这一点吗?

谢谢

javascript mouse cursor ace-editor

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

在调车场处理额外的操作员

给定这样的输入:3+4+ 算法将其转换为3 4 + +

我可以在执行后缀表达式时找到错误.但是,有可能在转换期间发现这一点吗?

(我读过的维基百科文章和网络文章不处理这种情况)

谢谢

parsing infix-notation postfix-notation shunting-yard

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

有getcwd的wchar_t版本吗?

我正在尝试这样做:

wchar_t buff[PATH_MAX];
wgetcwd( buff, PATH_MAX);
Run Code Online (Sandbox Code Playgroud)

我也尝试过_wgetcwd。谷歌建议_wgetcwd在dir.h中,但我从未听说过这样的头文件。

我正在使用GCC 4.3。

谢谢。

c++ gcc wchar-t getcwd

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

变量的生存时间不够长,无法通过通道发送

Cow<[u8]>我正在尝试通过频道发送包含以下内容的消息。然而,终身规则不允许我忽略它。

use std::borrow::Cow;
use std::sync::mpsc;

#[derive(Debug, Default, PartialEq, Clone)]
pub struct PlayerAction<'a> {
    pub data: Cow<'a, [u8]>,
}

#[derive(Debug, Clone)]
pub enum NetworkMessage<'a> {
    PlayerActionMessage(PlayerAction<'a>),
}

pub struct ConnectionsManager<'a> {
    channel: mpsc::Sender<NetworkMessage<'a>>,
}

pub struct MessageHandler<'a> {
    pub connection_manager: ConnectionsManager<'a>,
}

fn read_message<'a>(bytes: &'a Vec<u8>) -> NetworkMessage {
    NetworkMessage::PlayerActionMessage(PlayerAction {
        data: Cow::Borrowed(&bytes),
    })
}

impl<'a> MessageHandler<'a> {
    fn on_message(&mut self, msg: Vec<u8>) {
        let readm = read_message(&msg);
        self.connection_manager.channel.send(readm);
    }
}

fn main() {}
Run Code Online (Sandbox Code Playgroud)

操场

use std::borrow::Cow;
use std::sync::mpsc;

#[derive(Debug, …
Run Code Online (Sandbox Code Playgroud)

lifetime copy-on-write rust

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

预编译的头文件和编辑头文件

我在我的项目中使用预编译的头文件.precompile.h包括我创建的*.h文件和来自我从未重建的库中的许多*.h文件.

我的问题是,每次编辑我的一个*.h文件时,它都会编译整个precompile.h文件.这大约需要5分钟.(仅编辑cpp文件后编译只需1秒钟.)

我知道这是预编译头文件的工作方式,但无论如何要分离我的头文件,以便编译器只编译我的文件?

c++ precompiled-headers visual-studio

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

函数指针模糊度与模板化参数

我正在尝试将重载函数指针作为参数传递给模板函数.

float Function1(float par1)
{
 return 0;  
}

float Function1(float par1, float par2)
{
 return 0;  
}

template<typename R, typename A1>
void Bind(R(*func)(A1))
{
   std::cout << "Correct one called\n";
}

template<typename R, typename A1, typename A2>
void Bind(R(*func)(A1, A2))
{
   std::cout << "False one called\n";
}

int main()
{
 Bind<float, float>(&Function1);
}
Run Code Online (Sandbox Code Playgroud)

即使我用2浮点参数明确调用函数,编译器似乎无法解析正确的调用.编译器显示"模糊函数调用"错误.

我在这里创建了一个小样本:http: //liveworkspace.org/code/4kVlUY$195

这个错误的原因是什么?谢谢.

c++ templates function-pointers

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

二维矢量访问

这两种访问方法有什么区别?

nodes->at(235).push_back(NavigationNode(NULL,0,0));

nodes[235].push_back(NavigationNode(NULL,0,0));

nodes->at(235).push_back(NavigationNode(NULL,0,0));

nodes[235].push_back(NavigationNode(NULL,0,0));

nodes->at(235).push_back(NavigationNode(NULL,0,0));

nodes[235].push_back(NavigationNode(NULL,0,0));

第二个给出了这个编译错误

cannot convert parameter 1 from 'PathFinder::NavigationNode' to 'const std::vector<_Ty> &'
Run Code Online (Sandbox Code Playgroud)

我对这个错误很困惑

c++ stl

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

单个语句中的多个递增/递减

var a = 0;
(++a)+(a++)+(++a); 
print(a);
Run Code Online (Sandbox Code Playgroud)

打印3.我假设它只执行单个增量.

var a = 0;
(++a)+(a++)+(--a); 
Run Code Online (Sandbox Code Playgroud)

打印1.此处遵循的规则是什么?

谢谢.

javascript

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