小编Eva*_*ard的帖子

C++ - 在头文件中使用构造函数初始化变量

关于以下内容,是否有任何理由做一个或另一个或大致等同?

class Something
{
    int m_a = 0;
};
Run Code Online (Sandbox Code Playgroud)

VS

class Something
{
    int m_a;
    Something(int p_a);
};

Something::Something(int p_a):m_a(p_a){ ... };
Run Code Online (Sandbox Code Playgroud)

c++ constructor initialization

35
推荐指数
4
解决办法
4万
查看次数

C++ - 如何使用 reference_wrapper 的向量

我正在尝试重构我使用指针而不使用指针的寻路算法的一部分。不幸的是,我对参考文献不是那么了解。我收到错误:Invalid operands to binary expression ('std::__1::reference_wrapper<Tile>' and 'const std::__1::reference_wrapper<Tile>')

我也不知道这意味着什么。我的代码在下面,我可以推测它来自以下行:openList.erase(std::find(openList.begin(), openList.end(), current));但我不确定如何解决这个问题。

bool TileMap::tilesBetween(Tile& p_start, Tile& p_end)
{
    std::vector<std::reference_wrapper<Tile>> openList;
    std::vector<std::reference_wrapper<Tile>> closedList;

    openList.push_back(p_start);

    do
    {
        std::sort(openList.begin(), openList.end(), sortF());
        Tile& current = openList[0];
        closedList.push_back(current);
        openList.erase(std::find(openList.begin(), openList.end(), current));
        if(std::find(closedList.begin(), closedList.end(), p_end) != closedList.end())
        {
            return true;
        }

        std::vector<std::reference_wrapper<Tile>> adjacentTiles;
        if (current.m_coordinates.x > 0)
        {
            adjacentTiles.push_back(m_tiles[current.m_coordinates.y * m_width + (current.m_coordinates.x - 1)]);
        }
        if (current.m_coordinates.x < m_width)
        {
            adjacentTiles.push_back(m_tiles[current.m_coordinates.y * m_width + (current.m_coordinates.x + 1)]);
        }
        if (current.m_coordinates.y > 0) …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm pointers reference binary-operators

5
推荐指数
2
解决办法
9600
查看次数

Ruby - 自动运行帮助方法

我有一个登录页面,保存会话以允许用户导航后续页面.如果您未登录,我想将您重定向到登录页面.我有一个SessionsHelper方法来检查用户是否已登录,如果没有,将它们重定向回登录页面,但我不想在每个控制器操作中调用它.有没有办法在全球范围内轻松运行此方法?

ruby ruby-on-rails ruby-on-rails-4

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

C++ - 构造函数调用构造函数

我不知道如何用它来表达它或它实际上被称为什么,但我知道在Objective-C中你可以有多个构造函数可以连续相互调用,原谅任何代码错误,我有一段时间没有这样做,但这个想法就在那里.

- (id)initWithTitle:(NSString *)_title;
- (id)initWithTitle:(NSString *)_title page:(NSString *)_page;

-----------------------------------

- (id)initWithTitle:(NSString *)_title {
    return [self initWithTitle:_title page:nil];
}

- (id)initWithTitle:(NSString *)_title page:(NSString *)_page {
    if(self = [super init]) {
        self.title = _title;
        self.page = _page;
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道在c ++中是否有相同的东西;

c++ constructor

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

不清楚这个变量设置的作用:var a =!1

我见过类似于b =!b的解释.但是我不能很好地理解这个用法.

是什么

var a = !1;    
Run Code Online (Sandbox Code Playgroud)

做?

javascript

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

C++ - 设置等于参数的函数

我对c ++很陌生,但我正试图移植我已经开始的flash游戏.我试图将函数作为参数传递,然后设置一个等于该函数的属性.

class Param
{
    private:
    float function();
    float value;

    public:
    Param(float (func)());
    Param(float (func)(), float value);
    ~Param();

    void update();
};
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西:

Param::Param(float (func)()) {
    this.function = func;
}
Run Code Online (Sandbox Code Playgroud)

但似乎并不喜欢这样.我不确定它是否需要成为指针,我想在Param实例化时指定它而不是传递可能被删除的引用.

编辑:如果有人也可以回答,有没有办法让这些函数可选择传递?如果在没有指定的情况下默认为默认的函数?

c++ parameter-passing

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