C++学习 DAY2

vim编辑器的快捷键:

[yy] 复制光标所在行的内容 
[nyy] 复制n行内容 
[#l] 光标移到该行的第#个位置 
[#x] 删除光标到该[#]的位置,x每按一次删除当前字符 
[#X] 删除光标前[X]位置内容,X每按一次删除光标前一个字符 
[#dd] 删除[#]行的数据,dd表示删除改行数据 
[#G] 光标移动到[#]行行首 
[ZZ] 保存并推出文件 
[p] 粘贴 
[u] 撤销 
[ctrl+r] 反撤销一次


ubuntu 12.04 常用命令

初学ubuntu的时候每个初学者都会因为各种指令记不住而烦恼,因此我总结了一些初学常用命令:

  • whoami 确认当前用户,例如:root权限用户
  • adduser 添加用户,例如:adduser jerry
  • su 表示进入用户,例如:su jerry(进入jerry)
  • sudo apt-get install openssh-server 是ssh的安装命令
  • cd 到达指定路径 ,例如:cd user/lib
  • pwd 显示当前所在路径
  • find 查找某文件所在路径,例如: find ../ -name text
  • mkdir 创建文件,例如:mkdir text
  • cp 文件拷贝,例如:cp -r 1st 2nd(将文件1st拷贝到2nd下)
  • vim 创建可编程文件,例如:vim text.c
  • rm 删除文件,例如:rm -r text
  • ls 列出当前目录下文件
  • ls -l或ll 列出当前目录下文件及其详细信息(包括创建时间,权限等)
  • tar 压缩文件命令,例如:tar cvf text.tar text(将text文件压缩成text.tar文件) tar xvf text.tar(将text.tar文件解压到当前目录)
  • shutdown -h now 或 init 0 关机命令
  • reboot 重启电脑
  • chmod 更改文件权限,例如:chmod 777 text(权限设置是八进制的,分为可读可写可执行以及用户范围)
  • man 进入man手册(查阅命令行运用),例如:man ls
  • ifconfig -a 查看所有网卡(主要查询ip地址)
  • ctrl + c 快捷键,注释掉该行命令

以上的基本命令是初学者必须掌握的,也是最常用的,可能有遗漏,希望大家补充。


makefile语法

“=”

make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:

        x = foo
        y = $(x) bar
        x = xyz

在上例中,y的值将会是 xyz bar ,而不是 foo bar 。

“:=”

“:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。

        x := foo
        y := $(x) bar
        x := xyz

在上例中,y的值将会是 foo bar ,而不是 xyz bar 了。

给出一段完整Makefile逐句解释

CC = gcc
CXX = g++

ADD_CFLAGS := -Wall -g
CFLAGS := $(ADD_CFLAGS) $(CFLAGS)
CXXFALGS := $(ADD_CFLAGS)
LDFLAGS := $(LDFLAGS)

targets = test
.PHONY:all
all:$(targets)
    test:FOL.o fun.o
            $(CXX) $^ -o $@ $(LDFLAGS)
    FOL.o:FOL.cpp
            $(CXX) $(CXXFLAGS) -c $< -o $@
    fun.o:fun.c fun.h
            $(CC) $(CFLAGS) -c $< -o $@
.PHONY:clean
clean:
        $(RM) $(targets) *.o    

注释: 
CC表示gcc,CXX表示g++ 
ADD_CFLAGS是加入C的标志,-Wall是所有警告.....还有很多标志符号 
CFLAGS,CXXFLAGS分别表示C和C++的符号[&ADD_CFLAGS]表示则表示引入[ADD_CFLAGS]所表示的东西 
LDFLAGS表示连接库,如果不连接就按上面写 
targets表示目标文件,最后生成文件为test 
.PHONY是伪目标,个人理解是所修饰的内容编译器会智能判断,可以防止在Makefile中定义的只执行命令的目标和工作目录下的实际文件出现名字冲突,另一种是提高执行makefile时的效率。 
test:FOL.o fun.o 
目的文件:依赖文件1 依赖文件2 ... 
$@目标文件,$^所有的依赖文件,$<第一个依赖文件。 
注:针对大型的工程自己去写Makefile显得不太现实,所以linux提供的有生成Makefile的工具,但如果用在小的项目中过程很复杂(不如自己写Makefile)。

函数模板

#include <iostream>

using namespace::std;
template <typename T>
T abs(T x)
{
    return x<0?-x:x;
}

int main()
{
    int a=1;
    float b=-1.35;
    double c=-3.1;
    cout<<abs(a)<<endl;
    cout<<abs(b)<<endl;
    cout<<abs(c)<<endl;
    return 0;
}

类、对象、

类是创建对象的模板和蓝图;类是一组类似对象的共同抽象定义

对象

对象是类的实例化结果;对象是实实在在存在的,代表现实世界的某一事物

对象的三大特性

行为:对象能干什么 
状态:对象的属性,行为的结果 
标识:对象的唯一身份

猜你喜欢

转载自blog.csdn.net/qq_31869107/article/details/80886568
今日推荐