我无法理解智能指针在C++ 11中作为类成员的用法.我已经阅读了很多关于智能指针的内容,我想我确实理解了如何unique_ptr
和shared_ptr
/ weak_ptr
一般的工作.我不明白的是真正的用法.似乎每个人都建议使用unique_ptr
几乎所有的时间.但是,我将如何实现这样的事情:
class Device {
};
class Settings {
Device *device;
public:
Settings(Device *device) {
this->device = device;
}
Device *getDevice() {
return device;
}
};
int main() {
Device *device = new Device();
Settings settings(device);
// ...
Device *myDevice = settings.getDevice();
// do something with myDevice...
}
Run Code Online (Sandbox Code Playgroud)
假设我想用智能指针替换指针.A unique_ptr
不会起作用getDevice()
,对吧?那是我使用的时间shared_ptr
和weak_ptr
?没办法用unique_ptr
?对我来说似乎对大多数情况shared_ptr
更有意义,除非我在一个非常小的范围内使用指针?
class Device {
};
class Settings {
std::shared_ptr<Device> device;
public:
Settings(std::shared_ptr<Device> …
Run Code Online (Sandbox Code Playgroud) 我一直在搜索XCode和Google,但我无法找到如何做到这一点:
我正在使用Base本地化,它显示4个本地化为英语的文件.我不知道为什么它是4,我想找出原因. 但是怎么样?如何获取所有本地化文件的列表(以及这些文件所在的位置)?
这是一项非常罕见的任务,我找不到任何答案吗?或者这是显而易见的,我只是无法找到它?
我意识到当我尝试添加另一种语言(如Japanase)时,我会看到有4x InfoPlist.strings文件用于英文,1x文件用于Base Localization(Storyboard),但我仍然不知道为什么以及在哪里这些文件以及如何删除它们.
检查en.lproj
文件夹,只有1个InfoPlist.strings文件.为什么XCode告诉我我有4个?
c++ ×1
c++11 ×1
ios ×1
iphone ×1
localization ×1
objective-c ×1
shared-ptr ×1
unique-ptr ×1
xcode ×1