类对象的 C++ vector

标签 c++

我有一个名为 Movie 的类,其中包含以下私有(private)数据成员:

private:
    string       title_ ;  
    string       director_ ;  
    Movie_Rating rating_ ;  
    unsigned int year_ ;  
    string       url_ ;  
    vector<string> actor_;

它还包含以下复制构造函数:

Movie::Movie(Movie& myMovie)  
{  
    title_ = myMovie.title_;  
    director_ = myMovie.director_;  
    rating_ = myMovie.rating_;  
    year_ = myMovie.year_;  
    url_ = myMovie.url_;  
    actor_ = myMovie.actor_;  
}

当我尝试创建此类的 vector 时,

vector<Movie> myMovies;

然后将来自用户的所有信息接受到临时 Movie 对象 (myMovie1) 中,然后使用回推:

myMovies.push_back(myMovie1);

我收到以下错误:

1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector(1233) : error C2558: class 'Movie' : no copy constructor available or copy constructor is declared 'explicit'

我哪里错了?它似乎需要一个复制构造函数,但我确实定义了一个。

最佳答案

我的猜测是它反对将临时引用绑定(bind)到非常量引用。尝试将 Movie::Movie(const Movie & myMovie) 作为复制构造函数的签名。

关于类对象的 C++ vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2639733/

相关文章:

c++ - 为什么有专门为未初始化内存定义的 C++ 算法?

c++ - 为什么 0 < string.size() - N 为真,而 string.size() = 0

c++ - 'foo' 未在此范围内声明 c++

c++ - 用枚举填充 QMenu

c++ - 隐式转换为数组索引类型

c++ - GCC 中的 OpenHMPP

c++ - 如何知道 setupUi 是否已经被调用

C++ "error: passing ' const std::map<int, std::basic_string<char>>' as ' this' argument of ..."

java - 如何构建反向按位运算

android - 对于 Android Studio NDK Gradle,如何为不同的文件设置不同的 cFlags?