例2.1

使用成员函数的实例。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>

 using namespace std;

 struct Point
{
void Setxy(double a, double b)//成员函数,用来重新设置数据成员
{
x = a;
y = b;
} void Display()//成员函数,按指定格式输出数据成员的值
{
cout << x << "\t" << y << endl;
} double x, y;//数据成员
}; void main()
{
Point a;//定义对象a a.Setxy(10.6, 18.5);//设置对象a的数据成员
a.Display();//显示对象a的数据成员 cout << a.x << "\t" << a.y << endl;
}

例2.2

使结构具有封装性的实例。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>

 using namespace std;

 struct Point
{
private:
double x, y;//数据成员 public:
void Setxy(double a, double b)//成员函数,用来重新设置数据成员
{
x = a;
y = b;
} void Display()//成员函数,按指定格式输出数据成员的值
{
cout << x << "\t" << y << endl;
}
}; void main()
{
Point a; a.Setxy(10.6, 18.5); a.Display(); //cout << a.x; //1>------已启动生成: 项目: hello, 配置 : Debug Win32------
// 1> main.cpp
// 1>c:\users\denggl18.gdctc\documents\visual studio 2015\projects\hello\hello\main.cpp(33) : error C2248 : “Point::x” : 无法访问 private 成员(在“Point”类中声明)
// 1> c:\users\denggl18.gdctc\documents\visual studio 2015\projects\hello\hello\main.cpp(10) : note : 参见“Point::x”的声明
// 1> c:\users\denggl18.gdctc\documents\visual studio 2015\projects\hello\hello\main.cpp(8) : note : 参见“Point”的声明
// == == == == == 生成 : 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 == == == == == }

例2.3

使用构造函数初始化对象的实例。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>

 using namespace std;

 struct Point
{
private:
double x, y;//数据成员 public:
Point()//无参数构造函数
{ }; Point(double a, double b)//具有两个参数的构造函数
{
x = a;
y = b;
} void Setxy(double a, double b)//成员函数,用来重新设置数据成员
{
x = a;
y = b;
} void Display()//成员函数,按指定格式输出数据成员的值
{
cout << x << "\t" << y << endl;
}
}; void main()
{
Point a;//定义对象a
Point b(18.5, 10.6);//定义对象b并赋初值 a.Setxy(10.6, 18.5);//设置变量a的数据成员 a.Display();//显示变量a的数据成员
b.Display();//显示变量b的数据成员
}

例2.4

定义类的实例。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>

 using namespace std;

 class Point
{
private:
double x, y;//类Point的数据成员 public:
Point()//类Point的无参数构造函数
{ }; Point(double a, double b)//具有两个参数的构造函数
{
x = a;
y = b;
} void Setxy(double a, double b)//成员函数,用来重新设置数据成员
{
x = a;
y = b;
} void Display()//成员函数,按指定格式输出数据成员的值
{
cout << x << "\t" << y << endl;
}
}; void main()
{
Point a;//定义类Point的对象a
Point b(18.5, 10.6);//定义类Point的对象b并初始化 a.Setxy(10.6, 18.5);//为对象a的数据成员赋值 a.Display();//显示对象a的数据成员
b.Display();//显示对象b的数据成员
}

例2.8

演示使用string对象及初始化的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <string> using namespace std; void main()
{
string str1("We are here!");
string str2 = "Where are you?"; cout << str1[] << str1[] << "," << str1 << endl;
cout << str2[] << str2[] << "," << str2 << endl;
cout << "please input word:"; cin >> str1; cout << "length of the " << str1 << " is " << str1.size() << "." << endl;
}

例2.9

演示将美国格式的日期转换为国际格式的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <string> using namespace std; void main()
{
cout << "Enter the date in American format"
<< "(e.g., December 25, 2002):"; string Date; getline(cin, Date, '\n'); int i = Date.find(" "); string Month = Date.substr(, i); int k = Date.find(","); string Day = Date.substr(i + , k - i - );
string Year = Date.substr(k + , );
string NewDate = Day + " " + Month + " " + Year; cout << "Original date:" << Date << endl;
cout << "Converted date:" << NewDate << endl;
}

例2.10

演示使用complex和string对象及初始化的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <complex>
#include <string> using namespace std; void main()
{
complex <int> num1(, );
complex <float> num2(3.5, 4.5); string str1("real is ");
string str2 = "image is "; cout << str1 << num1.real() << ',' << str2 << num1.imag() << endl;
cout << str1 << num2.real() << ',' << str2 << num2.imag() << endl;
}

例2.11

演示string对象的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <string>
#include <algorithm>
#include <iterator> using namespace std; void main()
{
string str1 = "we are here!", str2 = str1; reverse(&str1[], &str1[] + );//str1字符串的元素逆向 cout << str1 << endl;//输出逆向后的内容 copy(&str1[], &str1[] + , &str2[]);//原样复制到str2 cout << str2 << endl;//输出str2 reverse_copy(&str2[], &str2[] + , ostream_iterator<char>(cout));//逆向输出str2
}

例2.12

演示string对象使用成员函数表示存储区间的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <string>
#include <algorithm>
#include <functional>
#include <iterator> using namespace std; void main()
{
string str1 = "wearehere!", str2(str1);//使用str1初始化 reverse(str1.begin(), str1.end());//字符串元素逆向 cout << str1 << endl; copy(str1.begin(), str1.end(), str2.begin());//原样复制到str2,str2应能容纳下str1 sort(str1.begin(), str1.end());//默认升幂排序 cout << str1 << endl;//输出排序结果
cout << str2 << endl;//输出字串str2的内容 reverse_copy(str1.begin(), str1.end(), str2.begin());//逆向复制到字串str2的内容 cout << str2 << endl;//输出逆向后的str2的内容 reverse(str2.begin() + , str2.begin() + );//字串str2部分逆向 copy(str2.begin() + , str2.begin() + , ostream_iterator<char>(cout));//输出逆向后的部分内容 cout << endl; sort(str1.begin(), str1.end(), greater<char>());//降幂排序 cout << str1 << endl;//输出排序后的字符str1 str1.swap(str2);//互相交换内容 cout << str1 << " " << str2 << endl;
}

例2.13

演示string对象数组的例子。

 #define _SCL_SECURE_NO_WARNINGS

 #include <iostream>
#include <string>
#include <algorithm>
#include <iterator> using namespace std; void main()
{
string str[] = { "We are here!","Where are you?","welcome!" }; for (int i = ; i < ; i++)
{
copy(str[i].begin(), str[i].end(), ostream_iterator<char>(cout));
cout << endl;
} str[].swap(str[]);
str[].swap(str[]); for (int i = ; i < ; i++)
{
cout << str[i] << endl;
}
}

04737_C++程序设计_第2章_从结构到类的演变的更多相关文章

  1. ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 使用ArcGIS进行空间分析 1.1 GIS分析基础 G ...

  2. ArcGIS for Desktop入门教程_第六章_用ArcMap制作地图 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第六章_用ArcMap制作地图 - ArcGIS知乎-新一代ArcGIS问答社区 1 用ArcMap制作地图 作为ArcGIS for Deskto ...

  3. ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 入门案例分析 在第一章里,我们已经对ArcGIS系列软件的体系结构有了一 ...

  4. 04737_C++程序设计_第4章_类和对象

    例4.1 描述点的Point类. 例4.2 根据上面对Point类的定义,演示使用Point类的对象. #define _SCL_SECURE_NO_WARNINGS #include <ios ...

  5. 04737_C++程序设计_第3章_函数和函数模板

    例3.1 传对象不会改变原来对象数据成员值的例子. #define _SCL_SECURE_NO_WARNINGS #include <iostream> #include <str ...

  6. 04737_C++程序设计_第1章_认识C++的对象

    例1.1 演示使用结构对象的示例程序. //功能:将结构对象的两个域值相加,乘以2再加50 #include <iostream>//包含头文件 using namespace std;/ ...

  7. 04737_C++程序设计_第10章_面向对象设计实例

    10.6.2 使用包含的参考程序及运行结果. 头文件cpp10.h 源文件cpp10.cpp 源文件Find10.cpp 头文件cpp10.h #if ! defined(CPP10_H) #defi ...

  8. 04737_C++程序设计_第9章_运算符重载及流类库

    例9.1 完整实现str类的例子. #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> ...

  9. 04737_C++程序设计_第8章_多态性和虚函数

    例8.1 分析下面程序的输出结果. 例8.2 分别使用指针和引用的display函数. #include <iostream> using namespace std; const dou ...

随机推荐

  1. (Inno setup打包)检测系统是否已安装程序,若已安装则弹出卸载提示的代码

    原文 http://bbs.itiankong.com/thread-30983-1-5.html 有6天没研究pascal代码了,昨天晚上突然来了灵感,终于解决了苦思冥想好几天没能解决的问题, 因此 ...

  2. Python网络资源 + Python Manual

    如何学习Python + 如何有效利用Python有关的网络资源 + 如何利用Python自带手册(Python Manual) 都差点忘了说了,在看下面所有的内容之前,对于python版本不了解的, ...

  3. SQL表名,应该用复数还是单数

    用单数形式更佳,理由如下: 1.概念直观. 你有一个袋子,里面有好多个苹果,你会说这是个苹果袋.但无论里面有0,1,百万个苹果,它依然是个袋子.表也是如此,表明需要描述清楚,表里面包含的对象,而非有多 ...

  4. linux之SQL语句简明教程---函数

    既然数据库中有许多资料都是已数字的型态存在,一个很重要的用途就是要能够对这些数字做一些运算,例如将它们总合起来,或是找出它们的平均值.SQL 有提供一些这一类的函数.它们是: AVG (平均) COU ...

  5. Truck History(kruskal+prime)

    Truck History Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Tota ...

  6. android listiew适配器

    List<Map<String>> Items = new ArrayList<Map<String>>(); // 把该显示的内容放到list中 fo ...

  7. C++暂时对象

    C++真正所谓的暂时对象是不可见的--不会在你的源码中出现.仅仅要你产生一个non-heap object而没有为它命名,便诞生了一个暂时对象.此等匿名对象通常发生于两种情况: 一是当隐式类型转换(i ...

  8. LeetCode Day3

     Lowest Common Ancestor of a Binary Search Tree import java.util.ArrayList; import java.util.List; / ...

  9. SQL 数据库知识点回顾

    SQL2008 一.安装注意事项: 1.修改用户权限(在一个安装页面中有七八个)(改成net.) 2.添加当前系统用户为账户 二.主键,约束,索引 三.增删改查: insert.delete.upda ...

  10. javaweb一周总结(菜鸟)

    我的试用期开始了. 这是我的第一篇博客,这也是我作为java工程师的第六天,主要是为了记录一周内出现的问题以及一些工作上的解答,吐槽一句工作的确和想的不一样之后直接记录下吧. 由于拥有工作平台看不到底 ...