2 bachelorjin bachelorjin 于 2016.05.04 17:40 提问

在类中使用string类的问题。我定义的构造函数,想把字符串赋给string对象,却实现不了。 10C

//12.2.ano.h
#ifndef STRING2_H_
#define STRING2_H_

#include
#include

using std::string;
using std::cout;
using std::cin;
using std::endl;

class String
{
private :
string str;
public :
String();
String(const string cs);
String(const String & s);
~String();
String & operator=(const String & s);
String & operator=(const string cs);
friend std::ostream & operator<<(std::ostream & os, String & s);
};

#endif

//string.cpp 实现文件
#include "12.2.h"
#include

String::String()
{

}

String::String(const string cs)
{
str = cs;
}

String::String(const String & s)
{
str = s.str;
}

String::~String()
{

}

String & String::operator=(const string cs)
{
str = cs;
return *this;
}

String & String::operator=(const String & s)
{
str = s.str;
return *this;
}

std::ostream & operator<<(std::ostream & os, String & s)
{
os << s.str;
return os;
}

//main.cpp 主函数
#include
#include "12.2.ano.h"
int main()
{
String a1 = "I know";
String a2 = (string)"I know";
cout << a1;
return 0;
}

2个回答

CSDNXIAOD
CSDNXIAOD   2016.05.04 17:52

string类的构造函数实现
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

dajiaxuejavascript
dajiaxuejavascript   2016.05.05 09:59

#include
using std::string;
using std::cout;
using std::cin;
using std::endl;
class String
{
private :
string str;
public :
String();
String(const string cs);
String(const String & s);
~String();

bachelorjin
bachelorjin 这是什么
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C/C++面试题:编写类String的构造函数、析构函数和赋值函数。
考点:构造函数、析构函数和赋值函数的编写方法 出现频率:☆☆☆☆☆ 已知类String的原型为:         class String         {         public:                 String(const char *str = NULL);     //普通构造函数                 String(const String
字符串类string的基本实现
包含指针成员的类深赋值运算符重载,类设计,类的默认、拷贝构造函数,析构函数 实验参考 class String {  char * m_data; public:  String();  String(const char *str=NULL);  String(const String &other);  String & operator=
C++中,自定义string类,实现字符串的赋值“=”和连接函数“+”
对于在C语言中,我们使用指针可以轻而易举的实现字符串的拷贝和连接等,在C++中,C在里面是完全兼容的,所以我们就可以在这里大展伸手,开始我们的C++的学习之旅,这篇文章我们实现自定义一个string类,实现字符串的赋值和连接,也就是C++里所谓的运算符重载;运算符重载是使用函数实现的,我们应该遵循函数的一些规则。 这里我说一下对于为什么进行运算符重载?我个人来看,大部分的运算符只适用于基本的数
C++基础之编写String类(拷贝构造函数)
拷贝构造函数的本质:一种函数,特殊的构造函数 拷贝构造函数的写法:和
C++ String类的构造函数、拷贝构造函数的实现
构造函数、析构函数与赋值函数是每个类最基本的函数,在一些公司的面试中也会经常问到这方面的问题。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不手动编写上述函数,C++编译器将自动为类A生成四个缺省的函数:    A(void);                    // 缺省的无参数构造函数    A(con
java_String类的对象的两种赋值方式
a) String类的对象的两种赋值方式  b) 为什么String类的对象可以直接赋值 a) 1 类似普通对象,通过new创建字符串对象。String str = new String("Hello"); 内存图如下图所示,系统会先创建一个匿名对象"Hello"存入堆内存(我们暂且叫它A),然后new关键字会在堆内存中又开辟一块新的空间,然后把"Hello"存进去,并且把地址返回给栈
String构造函数 拷贝构造函数 析构函数 赋值构造函数的实现
标题:String函数的实现-->主要实现构造函数,拷贝构造函数,析构函数,赋值构造函数。这几个函数是字符串函数最基本的函数,今天也总结一下 #include using namespace std; #include class MyString { private: char *str; public: MyString(const char *pStr)//构造函数 { if(
Java中JNI的使用详解第四篇:C/C++中创建Java对象和String字符串对象及对字符串的操作方法
2013-12-22 09:32 45人阅读 评论(0) 收藏 编辑 取消置顶 删除 目录(?)[+] 首先来看一下C/C++中怎么创建Java对象:在JNIEnv中有两种方法是用来创建Java对象的: 第一种方法: jobject  NewObject(jclass clazz  , jmethodID methodID, ....):
常见对象_String类的构造方法
package cn.itcast_01; /* * 字符串:就是由多个字符给组成的一串数据。也可以看成是一个字符数串。 * 通过查看API,我们可以知道 * A:字符串字面值"abc"也可以看成一个字符中对象。 * B:字符串是常量,一但被赋值,就不能被改变。 * * 构造方法: * public String():空构造 * public String(b
C++定义一个MyString类,实现两个字符串相加
定义一个MyString类,实现两个字符串相加。要求定义类的数据成员为字符指针,实现深拷贝函数。 1.理解构造函数与析构函数的含义及特点。 2.掌握构造函数的几种类型。 3.掌握构造函数与析构函数的执行顺序。 4.掌握在继承机制中派生类的构造函数和析构函数的执行顺序。