我有一些看起来像这样的代码:

// original function
size_t computeAverageRating(Movie m) { // take a movie object
    // compute average rating
}

// override original function
size_t computeAverageRating(size_t movieIndex) { // take the index of a movie
    getMovieObject(movieIndex);

    // call original function from here?
}


是否可以执行注释中描述的操作而无需创建两个具有不同名称的单独方法?

最佳答案

假设getMovieObject()实际上返回了Movie(尽管我将computeAverageRating()更改为采用Movie &m以避免复制对象):

size_t computeAverageRating(size_t movieIndex) { // take the index of a movie
  Movie m = getMovieObject(movieIndex);

  return computeAverageRating( m ) ;
}


应该做。

关于c++ - C++函数重载,调用“重载”函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23411720/

10-12 02:50