为什么同一类的对象可以访问彼此的私有数据?
class TrivialClass {
public:
TrivialClass(const std::string& data) :
mData(data) {};
const std::string& getData(const TrivialClass& rhs) const {
return rhs.mData;
};
private:
std::string mData;
};
int main() {
TrivialClass a("fish");
TrivialClass b("heads");
std::cout << "b via a = " << a.getData(b) << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这个代码有效.对象a完全可以从对象b访问私有数据并将其返回.为什么会这样?我认为私人数据是私人的.(我开始试图理解pimpl习语中的复制构造函数,但后来我发现我甚至不理解这种简单的情况.)
我的 Airflow 安装已停止工作。UI Web 服务器未出现。我认为该问题与我运行时出现的以下错误有关
> airflow initdb
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) table dag_stats already exists
[SQL:
CREATE TABLE dag_stats (
dag_id VARCHAR(250) NOT NULL,
state VARCHAR(50) NOT NULL,
count INTEGER NOT NULL,
dirty BOOLEAN NOT NULL,
PRIMARY KEY (dag_id, state),
CHECK (dirty IN (0, 1))
)
]
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题以便我可以回去工作?
我假设我只需要在nginx.conf文件中插入一个条目即可解决困扰我的错误(请参见下文),但是到目前为止,我还没有弄清楚语法的运气。任何帮助,将不胜感激。
我想以普通用户身份运行nginx,同时以具有管理特权的用户身份使用homebrew安装它。nginx尝试写入位于的error.log文件/usr/local/var/log/nginx/error.log,但无法执行该操作,因为我的普通用户在那里缺少写入权限。
另一个麻烦来自这样一个事实,即有两个nginx.conf文件,一个全局文件和一个本地文件,据我所知,它们都正在被读取。它们位于默认的自制位置 /usr/local/etc/nginx/nginx.conf和我的本地项目目录中$BASE_DIR/nginx.conf。
这是nginx尝试启动时生成的错误:
[WARN] No ENV file found
10:08:18 PM web.1 | DOCUMENT_ROOT changed to 'public/'
10:08:18 PM web.1 | Using Nginx server-level configuration include 'nginx.conf'
10:08:18 PM web.1 | 4 processes at 128MB memory limit.
10:08:18 PM web.1 | Starting php-fpm...
10:08:20 PM web.1 | Starting nginx...
10:08:20 PM web.1 | Application ready for connections on port 5000.
10:08:20 PM web.1 | nginx: [alert] could not …Run Code Online (Sandbox Code Playgroud)