每日细节点滴积累

一、basic

    2016-03-02

             3.  git 常用操作命令
              远端复制代码:git clone git@address:name[directory]
              远端代码更新至本地:git pull
              取服务器修改至本地:git fetch
              代码修改加至本地:git add [file]
              代码修改提交到本地仓库:git commit -m "comment"
              代码修改提交至远端:git push
              代码修改从本地删除:git reset [HEAD] file
              查看提交详情:git show commitNo.
              两个版本差异:git diff [commit1 commit2]
              删除文件 git rm file
              移动文件 git mv file
              去除未记录的本地修改 git checkout --file
              显示所有分支 git branch -a
              显示远程分支 git branch -r
              删除分支 git branch -d 分支名
              切换分支 git checkout [-b] 分支名
              提交到分支 git push origin 分支名

      2016-03-18

              1. C++ 拷贝构造函数被调用的情况
                        ① 类对象之间赋值时。
                        ② 函数形参为类对象,形参和实参结合时。
                        ③ 函数返回值为类对象,返回时。
                测试代码:
#include <iostream>

using namespace std;

class Point
{
public:
	int x, y;

	Point(){}
	Point(int x, int y)
	{
		this->x = x;
		this->y = y;
		cout << "构造函数被调用" << x << " " << y << endl;
	}

	Point(const Point &p)
	{
		this->x = p.x;
		this->y = p.y;
		cout << "拷贝构造函数被调用 " << x << " " << y << endl;
	}

	~Point()
	{
		cout << "析构函数被调用" << endl;
	}
};

void CopyConstruct(Point &p)
{
	cout << "形参是类对象 调用拷贝构造 " << p.x << " " << p.y << endl;
}

Point cpyCon()
{
	Point p(0, 0);
	cout << "函数返回值是类对象 调用拷贝构造 " << p.x << " " << p.y << endl;
	return p;
}

int main(void)
{
Point p1(1, 2), p2, p3;
	
	cout << "-----Test case 1-----" << endl;
	Point p4(p1);		// 类对象之间的赋值 调用拷贝构造
	Point p5 = p1;		// 这种同样会调用拷贝构造
	p2 = p1;		// 注意区分这种情况!! 仅仅只是=运算符重载

	cout << "-----Test case 2-----" << endl;
	CopyConstruct(p1);	// 函数参数为类对象 形参与实参结合时调用拷贝构造
	
	cout << "-----Test case 3-----" << endl;
	p3 = cpyCon();	<span style="white-space:pre">	</span>// 函数返回一个临时对象 调用拷贝构造赋值给p 临时对象被析构

	return 0;
}


二、forget

    2016-02-29

                1. Windows命令行下编译 链接 C/C++ 程序    cl 源文件
                   https://msdn.microsoft.com/zh-cn/library/ms235639.aspx
                   P.S: cl命令无法使用的解决方案 http://blog.csdn.net/ked/article/details/25052955

    2016-03-01

                1. Mysql 在命令行运行不了 解决方案:
                      a. win + R 输入 services.msc
                      b. 找到Mysql服务 点击属性 找到mysql的安装目录
                      c. 在上述安装目录找到 /bin目录 加入到环境变量中。
                         重启在cmd下输入 mysql 可以运行。

                        p.s: 
                          运行mysql命令可能出现无法访问数据库的情况。
                           "ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO"
                          按照下述命令格式即可:
                             mysql -uroot -p***(*处为root密码)
             2. Mysql 语句注释的两种方式
                 # comment
                 -- comment

三、unknown

    2016-03-02

                 1. VS 2013 Project Pages
                       Configuration Properties —— C/C++    —— Debug Infomation Format
                       Refer: Visual C++ Compiler Options —— /Z7, /Zd, /Zi, /ZI (Debug Information Format)
               有如下几个选项:
                  None ——  不输出调试信息 编译速度较快
                  /Z7    ——  生成包含用于调试器的完整符号调试信息的.obj文件.不生成任何.pdb文件。
                                     符号化调试信息包含变量的名称和类型以及函数和行号.
                                  注:该选项不兼容/clr
                 /Zd    ——  .obj和.exe文件包含 global and external symbol and line-number information
                                  场合:希望减小exe文件的大小 or 不想使用 debugger's expression evaluator
                 /Zi     ——    生成一个程序数据库(PDB) 包含供调试器使用的类型信息和符号化调试信息.
                                  符号化调试信息包含变量的名称和类型以及函数和行号.
                                  该选项不影响优化 类型信息放置在.pdb文件而不是.obj文件中.
                /ZI    ——   采用支持“编辑并继续”功能的格式生成程序数据库,想使用“编辑并继续”调试,则必须使用此选项。
                                   大多数优化与“编辑并继续”不兼容,使用/ZI会禁用代码中的所有#pragma optimize语句

                2 . Debug 和 Release的区别
                主要区别在于编译时 参数不同,从而导致优化等级不一致。

                   Debug: 调试版本  包含调试信息 无任何优化
                   Release: 发布版本 做了很多优化 保证程序运行时速度上最优

                   dll和exe都存在debug和release的版本,内存分配上两者是不一样的。
                    注:尤其注意程序依赖dll时,debug版本的dll不能依赖release版的dll, 反之亦然。
                   Refer: Duanxx的Vs学习:Debug和Release的区别

你可能感兴趣的:(每日细节点滴积累)