小编jlo*_*ado的帖子

C++在类构造函数中定义常量成员变量

通常当你的类中有一个常量私有成员变量时,它只有一个getter但没有setter,它看起来像这样:

// Example.h
class Example {
    public:
        Example(const int value);
        const int getValue() const;
    private:
        const int m_value;
};


// Example.cpp
#include "Example.h"

Example::Example(const int value)
: m_value(value)
{
}

const int Example::getValue() const
{
    return m_value;
}
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试做的是,有一个像这样的常量int成员变量,而不是在初始化部分中定义它,如下所示:: m_value(value)我需要采取另一个对象 - 我将在此示例中使用向量 - as构造函数的参数,并根据参数对象设置m_value.在这种情况下,如果大小超过0,我将尝试执行向量大小+ 1.所以这就是我所做的:

Example::Example(std::vector<Example*> myVec)
{
    if (myVec.size()) {
        m_value = myVec.size() + 1;
    }
    else {
        m_value = -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我得到一个错误uninitialized member 'Example::m_value' with 'const' type 'const int',如果我在初始化部分初始化m_value,我得到的错误assignment of read-only data-member …

c++ constructor initialization constants

15
推荐指数
2
解决办法
3万
查看次数

如何在我的 React-Native 开发环境中指定 Metro Bundler IP 地址?

不确定这是否可能,但这里是:

设置

  • 我有一个使用 React-Native cli 的 React-Native 应用程序设置
  • 我正在尝试向我的应用程序后端发出网络请求
    • 说,stage.foo.com/graphql
  • 我启动 Android 模拟器并启动开发服务器:
react-native run-android
Run Code Online (Sandbox Code Playgroud)
  • 这将启动我的 Metro-bundler 开发服务器localhost:8081

问题

  • 由于公司foo拥有出色的基础设施和安全性,他们设置了 CORS 来阻止来自localhost.
  • local.foo.com然而,他们还为这种情况 设置了一个公共环回域。
    • local.foo.com重定向回localhost
  • 如果我访问local.foo.com/graphql,它指向我想要的端点
  • 当我访问local.foo.com:8081/debugger-ui(远程调试 URL)时,它正确连接到在那里运行的 Metro Bundler 服务。

剩下的一块:

所以在这一切之后,这是我的问题:

  • 我的反应本机设置配置为加载应用程序locahost:8081
  • 有没有办法编辑设置来加载应用程序local.foo.com:8081

注意:这不是应用程序代码的问题,我需要某种方法来更改应用程序在查找 Metro Bundler 服务时所点击的源。

android react-native metro-bundler

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

一行输入多个数字

我想知道如何在一条线路上接受多个数字而不事先知道多少.

所以,例如,如果我有1 2 3 4输入,我可以使用:

cin >> a >> b >> c >> d;
Run Code Online (Sandbox Code Playgroud)

但如果我不知道数量是4那么我就不能使用这种方法.将输入存储到向量中的正确方法是什么?

提前致谢

c++ input

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