您的位置:首页 > 运维架构 > Linux

C++ Primer--练习1.20 练习1.22以及补充部分linux知识

2016-10-02 09:33 274 查看
在做练习1.20  

今天学习如和在linux下建立一个工程(以后在此博客下补充完整),顺便把相应的linux 指令记录

操作系统:ubuntu14.04

知识储备:强烈推荐花2小时阅读完鸟个的第六章和第七章 

     阅读鸟哥的P659-P670,读完之后你会熟悉gcc 我们用g++ 

登录网站http://www.informit.com/store/c-plus-plus-primer-9780321714114下载第一章代码

解压 我的存放目录为Home/my_C++/GCC_src

命令记录:1查看gcc版本 gcc -v

2复制删除与移动:cp,rm,mv (copy,remove,move)根据英文单词记命令

     详情看鸟哥P169

3.查看当前目录 ls -al 若文件名前有个“.”,代表这个文件是“隐藏文件”

     4.~代表用户的主文件夹 代表我的/home 所以cd ~返回主目录

../代表上一层 cd ../返回上一层

     5.pwd 显示当前目录 /home/name

最好用pwd -[P]指令

创建文件夹有两种方式 1/右键新建 2/用mkdir指令(参考鸟哥的P164页)

如前文所言 我的所有C++程序都在my_C++文件下,创建工程步骤如下:

第一步:cd my_C++

mkdir test //创建一个test的目录

第二步:将Sales_item.h移动到test目录

mv /home/name/my_C++/GCC_src/1/Sales_item.h /home/name/my_C++/test
第三步:vim sale.cpp 将以下代码输入进去 然后:wq(看不懂这句话就看上一篇博客)

#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item book;
std::cin>>book;
std::cout<<book<<std::endl;
return 0;
}


然后编译 g++ sale.cpp

会出现如下的warning。不必理会

In file included from sale.cpp:2:0:
Sales_item.h:56:20: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 [enabled by default]
Sales_item() = default;
^
Sales_item.h:70:27: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
unsigned units_sold = 0; // explicitly initialized
^
Sales_item.h:71:22: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
double revenue = 0.0;
^


ls查看发现生产a.oout文件

第四步:执行 ./a.out

有兴趣的话可以阅读一下.h的头文件

练习1.21   

练习1.22 折腾了半个小时这个习题,终于明白“类定义了行为这句话”

#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item item1;
Sales_item sum;
//    std::cout<<"The sum is"<<sum<<std::endl;
//    std::cout<<"The item1 is"<<item1<<std::endl;
std::cin>>sum;
while (std::cin>>item1)
{
sum+=item1;
}
std::cout<<sum<<std::endl;
return 0;
}


练习1.23 将P15页的程序熟记于心 统计每个值连续出现了多少次

#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item curr_item,item;
if (std::cin>>curr_item)
{
int cnt=1;
while(std::cin>>item)
{
if (item.isbn() == curr_item.isbn())
{
++cnt;
}
else
{
std::cout<<curr_item.isbn()<<" occurs "
<<cnt<<" times "<<std::endl;
curr_item=item;
cnt=1;
}
}
std::cout<<curr_item.isbn()<<" occurs "
}
std::cout<<curr_item.isbn()<<" occurs "
<<cnt<<" times "<<std::endl;
}
return 0;
}


第一章到此结束 

想要读懂caffe的框架 应该先把C++ Primer前7章看完,  磨刀不误砍材功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: