我知道,给定一个类,例如,std::array,它有一个成员函数,比如size(),我们可以通过一个".“来调用该成员函数,也就是说,在下面的代码中,
array<int,5> myarray;
int s=myarray.size();S将是表示myarray大小的整数。当成员函数也可以被命名空间运算符"::“调用时,就会发生棘手的事情。例如,我知道以下代码行是有效的:
auto t=chrono::high_resolution_clock::now();那么,使用我们最初用于数组的语法有什么问题呢?
chrono::high_resolution_clock myclock;
auto t=myclock.now();发布于 2014-06-06 06:25:32
你建议的语法没有错。它起作用了。
然而,它创建一个对象,而::版本不创建任何对象。创建该对象似乎没有多大意义,因为没有必要这样做才能调用静态函数。因此,只调用静态函数而不创建对象就更简单了。
https://stackoverflow.com/questions/24075403
复制相似问题