在C ++中创建对象时遇到问题

时间:2016-04-09 06:45:36

标签: c++

好的,我正在研究这个小代码,我已经完成了两个课程,advStringadvString_stream。以下是课程:

class advString
{
public:
    string s_value;
    int i_value;
    advString(string s) : s_value(s) {}
    advString(int i)    : i_value(i) {}
};
//--------------------------------------------------------------------------------
class advString_stream
{
public:
    advString get();
    void putback(advString as);
private:
    advString buffer;
    bool full = false;
};
//-------------------------------------------------------------------------------- 

然后,在代码中,我定义了这个对象:

advString_stream ads;

它似乎应该对我有用,但每当我运行代码时,它都会给我这个错误:

  

' advStream :: advStream(void)':尝试引用已删除的函数

有人可以帮助我吗?我无法在没有编译器抱怨的情况下制作一个advString_stream。

2 个答案:

答案 0 :(得分:2)

因为包含的<shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="270" android:startColor="#fa1414" android:endColor="#ad2b2b" /> <stroke android:width="1dp" android:color="#201e21"/> <corners android:radius="12dp"></corners> </shape> 对象(<Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="36dp" android:textSize="21sp" android:textStyle="bold" android:textColor="#ffffff" android:background="@drawable/button"/> 成员)没有默认构造函数,所以需要显式提供advString构造函数来正确构造{{1对象。

这样的东西
buffer

答案 1 :(得分:2)

如果声明并实现其他构造函数,则必须声明并实现默认构造函数。