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

在做练习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章看完,  磨刀不误砍材功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值