实验5 类和对象-3(未完)

Posted ditongwoshang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验5 类和对象-3(未完)相关的知识,希望对你有一定的参考价值。

1.ex3.cpp完整程序及运行截图

 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 using namespace std;
 5 
 6 // 函数声明 
 7 void output1(vector<string> &);  
 8 void output2(vector<string> &);  
 9 
10 int main()
11 {
12     vector<string>likes, dislikes; // 创建vector<string>对象likes和dislikes
13     
14     // 为vector<string>数组对象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc) 
15     // 补足代码 
16     // 。。。
17     likes.push_back("favorite book");
18     likes.push_back("music");
19     likes.push_back("film");
20     likes.push_back("painting");
21     
22     cout << "-----I like these-----" << endl;
23     // 调用子函数输出vector<string>数组对象likes的元素值 
24     // 补足代码
25     // 。。。 
26     output1(likes);
27 
28     
29     // 为vector<string>数组对象dislikes添加元素值 
30     // 补足代码 
31     // 。。。 
32     dislikes.push_back("anime");
33     dislikes.push_back("sport");
34     dislikes.push_back("sportsman"); 
35     
36     cout << "-----I dislike these-----" << endl;
37     // 调用子函数输出vector<string>数组对象dislikes的元素值 
38     // 补足代码
39     // 。。。 
40     output2(dislikes);
41 
42     
43     // 交换vector<string>对象likes和dislikes的元素值 
44     // 补足代码
45     // 。。。 
46     likes.swap(dislikes);
47     
48     
49     cout << "-----I likes these-----" << endl;
50     // 调用子函数输出vector<string>数组对象likes的元素值 
51     // 补足代码
52     // 。。。 
53     output2(likes);
54 
55     cout << "-----I dislikes these-----" << endl;
56     // 调用子函数输出vector<string>数组对象dislikes的元素值 
57     // 补足代码
58     // 。。。 
59     output1(dislikes);
60         
61                         
62     return 0;
63 }
64 
65 
66 // 函数实现 
67 // 以下标方式输出vector<string>数组对象v的元素值  
68 void output1(vector<string> &v) {
69     // 补足程序
70     // 。。。 
71     for(int i=0;i<v.size();i++)
72     cout<<v[i]<<",";
73     cout<<endl;
74 }
75 
76 // 函数实现
77 // 以迭代器方式输出vector<string>数组对象v的元素值 
78 void output2(vector<string> &v) {
79     // 补足程序
80     // 。。。 
81     vector<string>::iterator it1=v.begin();
82     vector<string>::iterator it2=v.end();
83     for(;it1!=it2;it1++)
84     cout<<*it1<<",";
85     cout<<endl;
86 }

技术分享图片

 

 

 

 

 

 

2.关于6-17程序的修改

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int *p;
 6     p=new int(9);
 7     cout<<"The value at p:"<<*p;
 8     delete p;
 9     return 0;
10  } 

 

 

 

 

 

3.关于6-18程序的修改

 1 #include<iostream>
 2 using namespace std;
 3 int fn1(){
 4     int *p=new int(5);
 5     int reserve=*p;
 6     delete p;
 7     return reserve; 
 8 } 
 9 int main(){
10     int a=fn1();
11     cout<<"the value of a is:"<<a;
12     return 0;
13 }

 

这道题一开始没看出什么问题,参考了同学的博客修改的。

书p219   注意  “用new 分配的内存,必须用delete加以释放,否则会导致动态分配的内存无法回收,使得程序占据的内存越来越大,这叫做‘内存泄漏’。”

 


以上是关于实验5 类和对象-3(未完)的主要内容,如果未能解决你的问题,请参考以下文章

实验 5 类和对象-3

实验3 类和对象

实验五 类和对象-3 zxt

实验3 类和对象Ⅱ

实验三:类和对象

Java类和对象-学习笔记(超级详细~~~)