【ThinkingInC++】22、函数必须用它特有的方式去改变外部的string对象

/**
* 功能:创建两个函数,一个接受一个string*参数,另外一个接受一个string&参数。每个
*      函数必须用它特有的方式去改变外部的string对象。在main()中,创建和初始化一个
*      string对象,输出它,然后传给每个函数,输出结果。
* 时间:2014年8月16日12:24:50
* 作者:cutter_point
*/

#include<iostream>
#include<cstdlib>
#include<cstring>

using namespace std;

//第一个函数用来传入一个string*参数
void pointString(string* s)
{
    string ps="这是参数是指针,为了改变外面的数据!";
    *s="  pointString"+*s+ps;
}

//第二个函数传入一个string&的参数
void quoteString(string & s)
{
    string qs="这个是利用引用来传入参数,用来修改外部的值";

    s="  quoteString"+s+qs;
}

int main()
{
    string s="——cutter_point——";

    cout<<s<<"\n\n";
    pointString(&s);
    cout<<s<<"\n\n";
    quoteString(s);
    cout<<s<<"\n\n";

    system("pause");
    return 0;
}


今天有点累,昨天1点睡,今天5点起来一直干到现在刚刚吃完饭,有点受不了,就这么多了。

【ThinkingInC++】22、函数必须用它特有的方式去改变外部的string对象

时间: 2024-10-12 14:53:25

【ThinkingInC++】22、函数必须用它特有的方式去改变外部的string对象的相关文章

Delphi过程、函数传递参数的八种方式

Delphi过程函数传递参数的八种方式 Delphi过程.函数传递参数的八种方式,布布扣,bubuko.com

(备忘)vs2010编写动态链接库时导出函数的函数名问题及加载方式

在vs2010中使用.def文件导出函数时,仅仅添加.def文件是不够的,还要在 项目属性 -> 链接器 -> 输入 -> 模块定义文件 中添加自定义的.def文件名. (前提:导入导出都在头文件和源文件中定义好了) ##:静态加载动态链接库 将链接库的 头文件..lib文件 和 .dll 文件拷贝到工程目录下 然后#include 头文件,#pragma comment(lib,"**.lib") 最后直接在需要使用dll函数的地方使用函数就行 ##:动态加载动态链

函数调用的几种方法 几种主流框架使用匿名函数模仿块级作用域的方式

函数调用的几种方法 js 里函数调用有4种模式:方法调用.正常函数调用.构造器函数调用.apply/call 调用.同时,无论哪种函数调用除了你声明时定义的形参外,还会自动添加2个形参,分别是 this 和 arguments.这里你既然问 this,那么就只谈 this.this 的值,在上面4中调用模式下,分别会绑定不同的值.分别来说一说:方法调用:这个很好理解,函数是一个对象的属性,比如 var a = { v : 0, f : function(xx) { this.v = xx; }

2-2函数

函数:程序员编写的函数.C语言实现的一部分提供的函数(库函数) #include<stdio.h> int main(void) { printf("To C, or not to C :that is the question.\n") ; return 0 ; } main函数会在程序终止时向操作系统返回一个状态码.范例中main的前面int表明函数将返回一个整数值return 0 :两个作用:使main函数终止从而结束程序,指出main函数的返回值是0 原文地址:ht

Scala 趣题 22 函数重写,位置参数,参数名

  class C {     def sum(x: Int = 1, y: Int = 2): Int = x + y   }   class D extends C {     override def sum(y: Int = 3, x: Int = 4): Int = super.sum(x, y)   }   val d: D = new D   val c: C = d   c.sum(x = 0)   d.sum(x = 0) Explanation Scala uses the

09.22函数,三局两胜

//猜拳,三局两胜无返回值 //public void caiquan() //{ // int count = 0; // for (int k = 1; k <=3; k++) // {Console.Write("a="); // int i = int.Parse(Console.ReadLine()); // Console.Write("b="); // int j = int.Parse(Console.ReadLine()); // if (i

C++类的成员函数存储方式(是否属于类的对象)

今天在看TAF源码的时候,发现下面一段有趣的代码: getSmallerProxyPrx = Application::getCommunicator()->stringToProxy<GetSmallerPrx>(MobileAssist.JiangeSmallerServer.GetSmaller); //此处T为GetSmallerPrx template<class T> T stringToProxy(const string& objectName,con

(转)c++类的成员函数存储方式(是否属于类的对象)---一道面试题引发的思考

昨天去面试一家公司,面试题中有一个题,自己没弄清楚,先记录如下: class D { public: void printA() { cout<<"printA"<<endl; } virtual void printB() { cout<<"printB"<<endl; } }; main函数调用: D *d=NULL; d->printA(); d->printB(); 输出结果是? 当时想的是对象d直

java 22 - 9 多线程之 代码实现的方式2

多线程的代码实现: 方式2:实现Runnable接口 步骤: A:自定义类MyRunnable实现Runnable接口 B:重写run()方法 C:创建MyRunnable类的对象 D:创建Thread类的对象,并把C步骤的对象作为构造参数传递(2种方法) a:Thread(Runnable target) b:Thread(Runnable target, String name) 方式2的好处: A:因为java的继承方式是单继承,方式2可以避免java单继承带来的局限性 B:适合多个相同的