Cha*_*via 40
它是通过指针访问对象的成员函数或成员变量,而不是常规变量或引用.
例如:使用常规变量或引用,您可以使用.
运算符来访问成员函数或成员变量.
std::string s = "abc";
std::cout << s.length() << std::endl;
Run Code Online (Sandbox Code Playgroud)
但是如果你正在使用指针,你需要使用->
运算符:
std::string* s = new std::string("abc");
std::cout << s->length() << std::endl;
Run Code Online (Sandbox Code Playgroud)
它也可以重载以执行特定对象类型的特定功能.像shared_ptr
和的智能指针unique_ptr
,以及STL容器迭代器,重载此运算符以模仿本机指针语义.
例如:
std::map<int, int>::iterator it = mymap.begin(), end = mymap.end();
for (; it != end; ++it)
std::cout << it->first << std::endl;
Run Code Online (Sandbox Code Playgroud)
J-1*_*DiZ 38
a->b
手段(*a).b
.
如果a
是一个指针, a->b
是成员b
,其中a
指向.
a
也可以是像对象一样的指针(就像一个vector<bool>
存根)覆盖运算符.
(如果你不知道指针是什么,你有另一个问题)
Pau*_*lik 20
本地lambda表达式的返回类型的介绍人:
std::vector<MyType> seq;
// fill with instances...
std::sort(seq.begin(), seq.end(),
[] (const MyType& a, const MyType& b) -> bool {
return a.Content < b.Content;
});
Run Code Online (Sandbox Code Playgroud)引入一个尾随返回类型的函数结合重新发明auto
:
struct MyType {
// declares a member function returning std::string
auto foo(int) -> std::string;
};
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
113997 次 |
最近记录: |