当我尝试内联我的一个类的方法时,我收到编译器错误.当我拿走"内联"关键字时它会起作用.
这是一个简化的例子:
main.cpp中:
#include "my_class.h"
int main() {
MyClass c;
c.TestMethod();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
my_class.h:
class MyClass {
public:
void TestMethod();
};
Run Code Online (Sandbox Code Playgroud)
my_class.cpp:
#include "my_class.h"
inline void MyClass::TestMethod() {
}
Run Code Online (Sandbox Code Playgroud)
我尝试编译:
g++ main.cpp my_class.cpp
Run Code Online (Sandbox Code Playgroud)
我收到错误:
main.cpp:(.text+0xd): undefined reference to `MyClass::TestMethod()'
Run Code Online (Sandbox Code Playgroud)
如果我带走"内联",一切都很好.是什么导致了这个问题?(我应该如何内联类方法?是否可能?)
谢谢.
以下代码适用于我的机器,但它是良好的做法/保证工作?
struct MyStruct {
MyStruct(int x, int y, int z) :
x(x),
y(y),
z(z) {
}
int x;
int y;
int z;
};
Run Code Online (Sandbox Code Playgroud)
具体来说,x(x)保证做我想要的吗?(也就是说,初始化列表中的变量是否始终查看该struct/class的成员?)
我不想使用前导或尾随下划线,因为x是结构的公共成员.
谢谢!
我正在运行一个Apache Web服务器,并想知道将更改(从github)部署到Web服务器的最佳方法是什么?
/ var/www /现在只能由root写入.
我应该直接在/ var/www /中使用我的git项目吗?(所以创建/var/www/.git/?)
但是,当我需要运行命令(即sudo git push)时不起作用(因为我的ssh键不在sudo下).
我自己(而不仅仅是root)制作/ var/www/writable会更好吗?或者我应该向root用户添加ssh密钥?或者我应该完全做其他事情?
谢谢.
我确信这是一个非常简单的解决方案,但我不确定为什么我推送到GitHub失败了.
现在它看起来像:
$ git push origin master
To git@github.com:user_name/project_name.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:user_name/project_name.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
和:
$ git remote show origin
* remote origin
Fetch URL: git@github.com:user_name/project_name.git
Push URL: git@github.com:user_name/project_name.git
HEAD branch: master
Remote branch:
master tracked
Local ref configured for 'git push': …
Run Code Online (Sandbox Code Playgroud) 如果我想在查找外键时插入记录,我可以这样做:
INSERT INTO stores_products (name, product_id)
SELECT 'storeABC',
id
FROM products
WHERE name = 'product123';
Run Code Online (Sandbox Code Playgroud)
(其中product_id是products表的外键)
但是,当我需要从多个表中查找外键时,我无法弄清楚语法.
例如,我想做类似的事情:
INSERT INTO stores_products
(name, product_id, owner_id)
SELECT 'storeABC', products.id, owners.id
FROM products
WHERE name = 'product123'
FROM owners
WHERE name = 'owner456';
Run Code Online (Sandbox Code Playgroud)
(表名和列名只是一个例子,我知道从数据库设计的角度来看它没有多大意义,但我的问题是关于语法...).谢谢.