|
|
E*******1 发帖数: 3464 | 3 I said you need a vision. The vision is that you can not take the current
for granted and predict the future, the form asked you whether you are CPP
member or a terrorist member, you are right, it does not say ISIS == CPP,
and US will never equal them. However, if you have the vision, you can sense
that in US, CPP is kind of as bad name as that of ISIS, it is just not a
good title for you, man. And in future, maybe this bad name can convert to a
bad ban. Who knows, several months ago undoc immig... 阅读全帖 |
|
n**s 发帖数: 2230 | 4 又在这里之捡对美国有利的说,对不利的只字不提。
加拿大交CPP, EI,难道美国不交Social Security Tax, Medicare Tax吗?加州还要
收一个California SDI。美国收入里还要扣除401K, 美国的Social Security Tax可是
要远远高于加拿大的CPP。
举例 - 以下是收入十万元在加州和安省要交的税,考虑最简单的情况:单身,没有房
子,没有Capital Gain,2001年:
Ontario (calculated by QuickTax for Web,2001)
Ordinary Income: $100000, minus tax deferred RRSP $13500, among the
remaining $86500 the following goes to the government:
Federal income tax $16618.92
Provincial income tax $8452.29
CPP. $1496.40
EI. $877.50 HT
Total paid to the govern... 阅读全帖 |
|
n**s 发帖数: 2230 | 5 又在这里之捡对美国有利的说,对不利的只字不提。
加拿大交CPP, EI,难道美国不交Social Security Tax, Medicare Tax吗?加州还要
收一个California SDI。美国收入里还要扣除401K, 美国的Social Security Tax可是
要远远高于加拿大的CPP。
举例 - 以下是收入十万元在加州和安省要交的税,考虑最简单的情况:单身,没有房
子,没有Capital Gain,2001年:
Ontario (calculated by QuickTax for Web,2001)
Ordinary Income: $100000, minus tax deferred RRSP $13500, among the
remaining $86500 the following goes to the government:
Federal income tax $16618.92
Provincial income tax $8452.29
CPP. $1496.40
EI. $877.50 HT
Total paid to the govern... 阅读全帖 |
|
q**l 发帖数: 115 | 6 刚才用cpp上你的这个配置,大概税前978左右。 个人感觉,挺不错的价格。
其实如果只是上网办公之类的用途,cpu没必要这么好。
如果不怕麻烦,内存另外从newegg.com上买也会便宜很多。
如果硬盘容量要求不是很大的话,160g 7200用起来应该比250g 5400要快,而且也便宜
一些。。。
如何使用cpp? http://www.lenovo.com/cpp,用704919登陆。 |
|
M****7 发帖数: 13407 | 7 哈哈, 花了2分钟看了你的SUMMARY, 还是没看懂, 胖叔写作素养下降好快啊.
此女没能勾搭上密苏里版版草CPP, 没能让家财万贯的CPP脱离单身, 没能让CPP从此走
上性福生活, 算啥拼搏?
来。 |
|
H**********k 发帖数: 2158 | 8 By ANUPREETA DAS And GINA CHON
Private-equity firm Silver Lake Partners is working with one of its
investors, the Canada Pension Plan Investment Board, and Microsoft Corp. to
put together a proposal to buy Yahoo Inc., people familiar with the matter
said.
Under the proposal being discussed, Microsoft would put up several billion
dollars of funding, with additional financing being arranged by banks, the
people said. Silver Lake and the CPP Investment Board would kick in the rest
of the amount, wh... 阅读全帖 |
|
c****s 发帖数: 5892 | 9 加退休金计划亏损240亿
英文媒体日前报道说,加拿大退休金计划CPP(the Canada Pension Plan)一年共亏损240亿,令该计划总值从一年前的1227亿降为1055亿,资产萎缩18.62%。但今天的英文报道揭露说,尽管投资计划遭受巨额亏损,基金管理高层却不愿意亏待自己,退休金计划主席和行政总裁丹尼森(David Denison,上图)与其他3名高级管理人员将瓜分850万元的花红,其中丹尼森本人将获240万,另外3人分获210万、130万和110万。而在过去两年中,他们已经收取1,700万元的薪资和红利。
很多加拿大人尤其自雇人士都加入了CPP计划,主要在每年报税时从收入中扣除,目前给该计划供款人士的退休福利平均每月为$501.82,最高为$908.75。反对党对经济深陷衰退、CPP亏损严重而高层行政人员仍然照分百万红利的做法表示愤怒,新民主党领袖林顿(Jack Layton)昨天在国会指出,退休金计划是国民通过辛勤工作得来的钱,他们退休之后要依靠这笔钱过日子,而这些高层管理人员在投资中刚刚损失了240亿元,现在却大大方方地往腰包里装花红,这怎么说得过去?但总理哈珀回应 |
|
p**p 发帖数: 3386 | 10 看来是我记错了,CPE可以上lift,但不兼容expert drum,今后上大幅就受限了。从控
制上来说CPE的motor转速只有两档控制,而CPA有7档;CPE不能控制单独控制水泵,CPA
可以;CPE比CPA体积小。CPP比CPA多了温度显示,你可以知道当前的水温,而不需要额
外的温度计;CPP有冷水入口,CPA没有,温度高了就停止加热,估计CPP在炎热地区温控
更好。我个人觉得多一个水龙头麻烦,加冷水不如自然散热变化稳定。
lift |
|
x*****2 发帖数: 1663 | 11 【 以下文字转载自 Programming 讨论区 】
发信人: xzl0932 (Haters Welcome!), 信区: Programming
标 题: 10个包子 求救 新手 问个borland c++ 5.5的问题。。
发信站: BBS 未名空间站 (Fri Aug 26 14:09:56 2011, 美东)
我按照了网上的instruction。。创建了 bcc32.cfg ilink32.cfg。。然后PATH也设置
好了。现在有个问题是..我现在有个cpp文件。。helloworld.cpp 我应该如何打开 编
辑it?这个cpp file应该放在什么路径呢?打开CMD以后输入什么指令呢?以前都是用
IDE的。。现在这种完全不会用。。
我现在的画面是那个黑色的背景。如何转换到蓝色的画面? 我想COMPILE ,AND RUN IT
.. 真心求教
希望懂得人回复我。。如果版上说不清 希望可以加偶QQ |
|
Q*T 发帖数: 263 | 12 Use -fopenmp in both compiling and linking
g++ -fopenmp -c TestOMP.cpp
g++ -o TestOMP TestOMP.o -I. -g -O -fopenmp -lm
Or simply do
g++ -fopenmp -o TestOMP.cpp TestOMP.cpp
If these don't work, try another machine and see if it has anything to do
with the environment. |
|
b*****l 发帖数: 9499 | 13 是啊,还是老样子。能麻烦你在你的机子上跑一下不?
$ g++ -fopenmp -c TestOMP.cpp
$ g++ -o TestOMP TestOMP.o -I. -g -O -fopenmp -lm
$ ./TestOMP
omp_get_dynamic: 1
omp_get_max_threads: 48
Fork!
Hello World from thread = 0 of 1
Master thread: number of threads = 1
Joint!
$ less TestOMP.cpp
#include
#include
using namespace std;
main () {
int nthreads;
omp_set_dynamic(1);
cout << "omp_get_dynamic: " << omp_get_dynamic() << endl;
cout << "omp_get_max_threads: " << omp_get_max_threads() << endl;
... 阅读全帖 |
|
x******a 发帖数: 6336 | 14 thank you joa,
can i do, for example
alias q++ i.cpp='for i in *.cpp; do
g++ -I/opt/local/include $i -o ${i%.cpp} -L/opt/local/lib -lQuantLib
done' |
|
v*******i 发帖数: 19 | 15 I had a puzzling bug today. Though I finally fixed it, I am not clear about
the reason. I describe this question with 3 short codes: example.cpp, para.h
and para.cpp.
/****************************
example.cpp; a "hello world" main function
****************************/
#include
#include "para.h"
using namespace std;
int main()
{
Para example; // example is an instance of class Para.
cout <<"hello world"<
return 1;
}
/****************************
para.h
******************* |
|
t**g 发帖数: 1164 | 16 小弟用opengl编程,遇到一个问题百思不得其解,想请教
问题是这样:
我有一个用到opengl的程序(叫做demo.cpp)
在以前的旧电脑上运行得好好的
可是换到新电脑上
能编译能链接
可是一运行就报错:
“GLUT: fatal error in demo.cpp: pixel format with necessary capabilities
not found”
基本情况:
旧电脑:WinXP / microsoft visual c++ 2005 express
新电脑:WinXP / microsoft visual studio professional 2005
分析:
1。以前学习opengl书本上的一些范例程序,在新旧电脑上都可以顺利运行
所以程序设置(包括库文件路径,opengl包之类)应该都没问题
2。我自己写的demo.cpp程序,在旧电脑上,不管是project模式还是命令行模式,都可
以顺
利编译运行
在新电脑上,在两种模式下都可以顺利编译链接,可是一运行都会报同样的错误
所以我初步怀疑问题出在文件本身,可是为什么在旧电脑上就运行得好好的呢?
这只是一 |
|
c*********n 发帖数: 128 | 17
Yes, I know that.
Let's say you have three files:
A.h, B.cpp, B.h
you include A.h in B.h, (and of course you include B.h in B.cpp)
then how do you write a Makefile to compile B.cpp?
I know this is probably very basic question, but I am a real rookie...... |
|
d****2 发帖数: 6250 | 18 oops, found this forum for the first time.
Let's say you have three files:
A.h, B.cpp, B.h
you include A.h in B.h, (and of course you include B.h in B.cpp)
then how do you write a Makefile to compile B.cpp? |
|
m********e 发帖数: 23 | 19 这是TICPP中的一个example
#include
#include
#include
using namespace std;
int count = 0;
void out_of_memory() {
cerr << "memory exhausted after " << count
<< " allocations!" << endl;
exit(1);
}
int main() {
set_new_handler(out_of_memory);
while(1) {
count++;
new int[1000]; // Exhausts memory
}
} ///:~
但编译居然报错:
g++ -c NewHandler.cpp
NewHandler.cpp: In function `void out_of_memory()':
NewHandler.cpp:16: error: `count' undeclared (first use this function) |
|
b*****e 发帖数: 17 | 20 When I write rules in makefile
Chap12.o : chap12.cpp chap12.h generic.h
g++ -c -I $(include_path) chap12.cpp
generic.h is included in chap12.h and chap12.h is included in chap12.cpp
Do I need to put generic.h in prerequisite?
Thanks. |
|
p*****c 发帖数: 20 | 21 我在头文件里声明了函数
bool cal_sum(int num,int &elem)
然后我另外写了一个文件是这个函数的主体 cal.cpp
在主函数文件里我include head.h 后,为什么还是link不到cal这个文件?
如果我在主函数里直接用 include cal.cpp,甚至都不需要头文件了。
请问如果用头文件的方式应该怎样调用那个外部函数 ? 直接include cal.cpp是合理
的做法吗? |
|
k**f 发帖数: 372 | 22
You need to create a project in DevC++ and add both cpp files to the project.
Including the .h file makes the compiler happy, i.e., it can generate code
to call the function per the function prototype in the header file.
But if the function is implemented in another .cpp and not included in main.
cpp, the linker need to see the object code to put the executable.
That's why a non trivial program in C almost always needs a project file in
IDEs like VC++ and DevC++, or a makefile with the traditio |
|
k**f 发帖数: 372 | 23 You code compiles clean in VC++ 2008 Express, but failed g++ 3.3.4 with such
error message:
x.cpp: In function `int main()':
x.cpp:11: error: invalid initialization of non-const reference of type 'X&'
from
a temporary of type 'X'
x.cpp:5: error: in passing argument 1 of `void g1(X&)' |
|
b***y 发帖数: 2799 | 24 ☆─────────────────────────────────────☆
isup (No) 于 (Fri Feb 8 19:50:44 2008) 提到:
I want to put the class definition in one .h file, and all inline member
fuction in one .cpp file. By this way, I can hide the souce code from the
class client. It seems not work when I put main() in another .cpp file and
compile the both .cpp files. The error messages say the inline member
funtions are Undefined.
Is it possible to hide the inline member functions' code?
☆───────────────────────────────────── |
|
d****e 发帖数: 251 | 25 环境:visual studio 2005, C++
我想unit test一个solution里面的一个class (x.cpp),不知道正确的做法是怎么做?
我的办法是把所有关联的cpp和h文件都拷贝到一个新的目录,
然后写一个main.cpp来测试。但是这个方法很笨啊,而且代码更正后还得拷贝回去。
另:网上搜到CppUnit,不知道是做不是解决这种问题的。 |
|
w******g 发帖数: 67 | 26 I have a simple C++template code, but I cannot get it run.
In DataTemplate.h:
template
ElemType* getVecElemPointer(int index, vector& vec);
In DataTemplate.cpp:
template
ElemType* getVecElemPointer(int index, vector& vec)
{
if( (index0) )
{
return &vec[index];
}
return (ElemType*) 0;
}
It is fine when I compile it: "g++ -c -g DataTemplate.cpp"
In another class implementation file: test.cpp
#inclu |
|
P********e 发帖数: 2610 | 27 目录是这样:
./project/a.cpp
./project/a.h
./b.cpp
在b.cpp里面有一句话
#include "a.h"
怎么能让他编译成功,我additional include dir设置了 ./project还是不行
晕了 |
|
r****t 发帖数: 10904 | 28 这个应该是常见问题了,google 了一下确没有找到,这段小程序不能 compile:
template
class A {
public:
A(float numbers[N]):
numbers(numbers) {}
float numbers[N]; // this does not compile, see error msg below.
//float* numbers; // this works fine.
};
float arr[3] = {1.,2.,3.};
int main() {
A<3> a(arr);
}
compile 错误是:
test3.cpp: In constructor 'A::A(float*) [with int N = 3]':
test3.cpp:14: instantiated from here
test3.cpp:5: error: incompatible types in assignment |
|
z****e 发帖数: 54598 | 29 那当然不可能一夜之间消亡,但是cpp的影响已经大不如前也是事实
其实java的出现很大程度上就严重打击了cpp的前景,而且现在c#等更多简化编程语言
的出现
使得cpp在一些传统行业上都不再有优势,比如游戏 |
|
g*********s 发帖数: 1782 | 30 the following code gives me warnings. what does it mean and does it matter?
inclass_mutex.cpp: In constructor ‘X::X(unsigned int)’:
inclass_mutex.cpp:8: warning: extended initializer lists only available with
-std=c++0x or -std=gnu++0x
inclass_mutex.cpp:8: warning: extended initializer lists only available with
-std=c++0x or -std=gnu++0x
#include
class X {
public:
X(unsigned int in_sz = 0): sz (in_sz)
{
buffer = new int[sz];
lock = PTHREAD_MUTEX_INITIALIZER;
... 阅读全帖 |
|
b*****i 发帖数: 130 | 31 除了上面提到的那个错误,还有如下这种的:
c:\gdsii\boolean\boolean\6.2\src\extract\devicepart.h(8) : fatal error C1083
Trapezoid.cpp
Step1: 我把这个 Vertex.h 在工程里的位置拷到和 devicepart.h同一个目录下,结果
不行。。。
Step2: 我把Vertex.h在文件夹里存的位置也拷到了和devicepart.h 同一个目录下,结
果也不行。。
如果文件名用一对引号括起来则表明该文件是用户提供的头文件查找该
文件时将从当前文件目录开始,所以对 Vertex.h 和 devicepart.h 的放置位置到底有
何要求呢?
而且为什么在错误的最后又会提到 Trapezoid.cpp呢? 看上去Trapezoid.cpp里头也没
有include devicepart.h呢。
还请大侠们帮忙啊 |
|
h********n 发帖数: 1671 | 32 简单说就是一个.cpp文件。常见的情况是两个.cpp引用了同一个.h文件,而.h文件里某
个函数忘记声明为inline,编译的时候linker会说某一个函数重复定义。加上inline后
就不会有这个错误。普通函数除了inline,还可以声明为static或是放在namespace{}
里。如果是类成员函数,就只能用inline了。这是必须用inline的地方。
LZ的例子,如果是定义在.h文件里而又被多个.cpp引用,就必须用inline、static或是
namespace{}之一。如果是类成员函数,就必须用inline,与是否递归和内嵌没有关系
。写上inline后,如果编译器决定不内嵌,也会自行处理重复定义的问题,不会报错。 |
|
P********e 发帖数: 2610 | 33 如何修改下面main.cpp,使得产生redefinition的error,不得使用using ns::MAX;?
//ns.h
namespace ns
{
extern const int MAX;
}
ns.cpp
namespace ns
{
const int MAX = 3;
}
main.cpp
#include "ns.h"
const double MAX = 3.5; |
|
x*****2 发帖数: 1663 | 34 我按照了网上的instruction。。创建了 bcc32.cfg ilink32.cfg。。然后PATH也设置
好了。现在有个问题是..我现在有个cpp文件。。helloworld.cpp 我应该如何打开 编
辑it?这个cpp file应该放在什么路径呢?打开CMD以后输入什么指令呢?以前都是用
IDE的。。现在这种完全不会用。。
我现在的画面是那个黑色的背景。如何转换到蓝色的画面? 我想COMPILE ,AND RUN IT
.. 真心求教
希望懂得人回复我。。如果版上说不清 希望可以加偶QQ |
|
L***n 发帖数: 6727 | 35 试了下gotoblas2,我的机器
$ cat /proc/cpuinfo | grep model\ name | head -1
model name : Intel(R) Core(TM) i7 CPU Q 740 @ 1.73GHz
$ time -p java jmatrix
java allsum=1.8658666E16
real 11.69
user 12.68
sys 6.65
C++ 和优化flags
$ g++ -O3 -funsafe-math-optimizations -funroll-loops -fprefetch-loop-arrays
-march=native cmatrix.cpp -o cmatrix
$ time -p ./cmatrix
c++ allsum=1.86587e+16
real 8.04
user 8.00
sys 0.03
trivially在最外层循环里用gotoblas(就是把里面的二重循环换成Blas Level2)
g++ -O2 -funroll-loops -fprefetch-loop-ar... 阅读全帖 |
|
g***l 发帖数: 2753 | 36 下面这段代码中,为什么不能用static_cast把一个(float*)的指针强制转换成
(int*),而用 reinterpret_cast? 请问这是规定吗? 假设 sizeof(float) ==
sizeof(int).
[localhost]$ g++ -g sample.cpp -o sample
sample.cpp: In function ‘int main()’:
sample.cpp:13: error: invalid static_cast from type ‘float*’ to type ‘int
*’
在C中,可以这么转,gcc也会发warning,但是不会编译失败。
谢谢了。
1
2 #include
3 using namespace std;
4 int main()
5 {
6 int inumber=1000;
7 float fnumber=1234.56;
8
9 int* piaddr = &inumber;
10 float* pfa... 阅读全帖 |
|
|
a**********e 发帖数: 157 | 38
原因大概2个
1. 如果implementation也放在header file里,同时很多其他文件都要include这个文
件,会导致严重redundancy,同样的代码出现很多次。(在cpp preprocess后)
2. 如果在cpp文件改变implementation,而declaration(header file里)不变,只需
要recompile cpp file。否则,所有include这个文件的所有file都要recompile,很浪
费资源和时间。 |
|
c***n 发帖数: 21 | 39 本人理科PhD 但不是生物 如果顺利毕业工作应该也不太难找 不过不太想继续作
research 浪费了前两年时间 现在想问问将来当码工的可能性
经验:自学了c++和shell scripting 所以对于linux环境还比较熟悉 暑假里gf选了c++
和system programming的课程 跟着学了一下 所有的project都认真做了一下 就是笔头
的考试没有参加
lab里要用到一个c和c++写的开源linux软件 学过一些时间 基本了解了gtk widget(
一个user interface)和gtk thread的用途 但是那个开源软件还是看不懂 特别是他通
过automake生成的makefile的编译过程
写过用c的system command写成的一个shell 用shell scripting写过一个贪吃蛇的
小游戏 用gtk和c写过一个计算器
现在在自学data structure 想在春季修algorithm作为minor 并且接下来想写一个
图像数据处理的小软件 现在可以从一个netcdf file里读到一个二维数组 但是不知道
怎么用它... 阅读全帖 |
|
s*****n 发帖数: 994 | 40 情况是这样的,我的程序要用到另外一个tool的class和class functions
但是我的程序和那个tool有相同的class名称(内容当然不一样)
譬如说这个class是Tree,我的source fils里面有这个class,要包含的tool里面也有
src_mine/my_tree.cpp
src_mine/main.cpp
...
src_tool/tool_tree.cpp
...
那我要用namespace的话,怎么用?是不是要在src_tool下面的每个文件都加上
namespace tool{} ?
以前没用过namespace,在这种情况下怎么用最方便? |
|
d***a 发帖数: 13752 | 41 不用搞得那么复杂,直接调用cpp预处理器就可以了。cpp的具体用法网上找得到。
cpp的输出会有多余的空行,再写一个简单的script去掉。 |
|
d***q 发帖数: 1119 | 42
cpp actually don't need any GC (smart pointer might be an exception)
a compelling reason of choosing c/c++ is you can manage the memory layout
precisely, and do sth more predictable.
if you don't need then, use cpp may not offer any benefit. modern system
languages including c descendant Golang, or D come with GC. If you do need
GC. why not give go or D even java a try?
I don't think it is a good trend that most of programmers switch their
career to cpp. indeed it's impossible. |
|
C********e 发帖数: 219 | 43 接手了一个c++的程序,以前的程序员不愿意指导,自己也比较愚钝。请大侠们指点
不明白为什么usleep(1000)发生overflow?是因为其他线程有overflow的情况吗?如何
查看其他线程里面的变量值呢?
Program terminated with signal 6, Aborted.
#0 0x0000003cfd89a1e1 in nanosleep () from /lib64/libc.so.6
(gdb) bt
#0 0x0000003cfd89a1e1 in nanosleep () from /lib64/libc.so.6
#1 0x0000003cfd8ce8f4 in usleep () from /lib64/libc.so.6
#2 0x0000000000498e17 in MyClass::StartUp (this=0x2b4484725010, aName=
Traceback (most recent call last):
File "/usr/share/gdb/python/libstdcxx/v6/printers.py", lin... 阅读全帖 |
|
|
w*******e 发帖数: 285 | 45 说说我的几点看法,第一如果grok python的parser确实是他写的那的确是很牛,但是
这也只是grok的一部分,grok的主要功能还是支持code search,如果code search没有
grok python的parser也是确实会差一些,但是并不是那么严重,基于纯regex的
parsing也不是完全不能用,grep不也照样可以撑一撑吗。
codesearch这个确实是google内部提高生产力的第一利器,说白了大家都是copy paste
,越方便越好。
还有他认为wanzhanyong的gtest和gmock没有技术含量,这也不完全对,毕竟cpp和
jiava不一样,不是reflection语言,你不能随便胡来那么容易的mock,我感觉gtest和
gmock对于写cpp unittest还是非常好的,对提高代码质量很有帮助。我个人不好判断
他写的grok python parser的贡献就一定比gmock和gtest大,所以他觉得自己肯定因该
当principal也是可以商榷的。
最后说unittest,这个的确是google的culture,至于好坏见仁见智。... 阅读全帖 |
|
e*******s 发帖数: 1979 | 46 以下这段代码 把set的iterator直接传递到parameter为reference的函数里
报错
test.cpp: In function 'int main()':
test.cpp:110: error: invalid initialization of reference of type 'std::
string&' from expression of type 'const std::basic_string
traits, std::allocator >'
test.cpp:67: error: in passing argument 1 of 'void foo(std::string&)'
make: *** [a] Error 1
如果修改代码
1. void foo(string &s) --> void foo(string s)
2. string s = *it; foo(s);
3. void foo(string &s) --> void foo(cons... 阅读全帖 |
|
b***i 发帖数: 3043 | 47 这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
.h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
定义函数,没有重复。这才叫编程序。
前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的
using都改名了。Eclipse这种就不配叫Refactor,还是应该学VS2015,叫rename。
第二个,即使你不定义模板,你能不使用吗?随便一个asio都要传入用模板的变量。我
如果... 阅读全帖 |
|
b***i 发帖数: 3043 | 48 这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
.h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
定义函数,没有重复。这才叫编程序。
前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的
using都改名了。Eclipse这种就不配叫Refactor,还是应该学VS2015,叫rename。
第二个,即使你不定义模板,你能不使用吗?随便一个asio都要传入用模板的变量。我
如果... 阅读全帖 |
|
r*g 发帖数: 186 | 49 我现在用的是add_custom_command来引入xxx.dt -> xxx.cpp xxx.hpp
但是表现的不太正常
比如修改了xxx.ft我希望重新生成xxx.cpp就不行
除非把当前生成的xxx.cpp删了 |
|
y**b 发帖数: 10166 | 50 实际代码就是这样的:.cpp包含两个.h。
但是class B{}里面既有定义,也有一些实现,这个有关系吗。主要是B.h里面有多个
辅助类,还有一些继承类,有点大,不然可以快速改写一下进行测试。
还有,将B的dtor从B.h移到B.cpp里面,反而出现编译错误:
error: definition of implicitly-declared B::~B()
你原来的目的,不用smart pointer,也可以通过编译,只需要在B.h里面
class A;//必须对称,A.h里面要有class B;
class B{定义,不要实现};
.cpp include 两个.h,实现。定义和实现分开即可。 |
|