一、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的区别