由买买提看人间百态

topics

全部话题 - 话题: cpp
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
s******t
发帖数: 150
1
来自主题: Computation版 - c++,如何用cout 输出double 变量
使用dev c++,
代码如下:
#include
#include
#include
using namespace std;
//------------------------------------
//-------- main()---------------------
//====================================
int main(int argc, char *argv[])
{
double a = 5.0;
cout << a <<endl;//
system("PAUSE");
return EXIT_SUCCESS;
}
//---------------------------------
Compiler: Default compiler
Building Makefile: "C:\Users\Documents\c++\learnCplus_OOP1\Makefile.win"
Executing make...
make.exe -f "C:... 阅读全帖
r**********g
发帖数: 22734
2
来自主题: JobHunting版 - 现在还有哪些公司招C++
汇编是奇技淫巧。一个语言要有工程性,跨平台,和直接优化硬件的能力。具备所有这
些特性的只有cpp。cpp 可以写出整个google ,也可以做到寄存器级别的优化。其他任
何语言,有比cpp 强大之处,却都有这样那样的局限。比如汇编,你拿来做大工程完全
不可能。
所以说cpp 是整个计算机工业的核心和基础,是每个人真心要从事这项事业的人的基本
功。这也是我说只有会cpp 的人才能称为程序员,其他都只是xx 语言程序员的原因。
至于考是否靠cpp 吃饭,却是另一回事。
d**********o
发帖数: 1321
3
来自主题: WebRadio版 - 潜水员冒泡兼征版友意见
第一个项目report
这时偶刚到CSAC工作不久,与小A同学还不熟,我用的还是latex。随着贴的作业越来越
多,应该是用有共同爱好的小伙伴更亲密些。这次贴latex,下次才再org-mode。
\documentclass[b5paper,11pt, abstraction, titlepage]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{CJKutf8}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{listings}
\usepackage{geometry}
\geometry{b5paper}
\usepackage{graphicx,floatrow}
\usepackage{graphicx,subfigure}
\newsavebox{\abstractbox}
\renewenvironment{abstract}
{\begin{lrbox}{0}\begin{minipage}{\t... 阅读全帖
d**********o
发帖数: 1321
4
来自主题: WebRadio版 - 潜水员冒泡兼征版友意见
第一个项目report
这时偶刚到CSAC工作不久,与小A同学还不熟,我用的还是latex。随着贴的作业越来越
多,应该是用有共同爱好的小伙伴更亲密些。这次贴latex,下次才再org-mode。
\documentclass[b5paper,11pt, abstraction, titlepage]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{CJKutf8}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{listings}
\usepackage{geometry}
\geometry{b5paper}
\usepackage{graphicx,floatrow}
\usepackage{graphicx,subfigure}
\newsavebox{\abstractbox}
\renewenvironment{abstract}
{\begin{lrbox}{0}\begin{minipage}{\t... 阅读全帖
s*****n
发帖数: 1279
5
来自主题: Programming版 - a very simple c++ question
Both try1.cpp and try2.cpp can be complied, but only try1.cpp works. when I
run try2.cpp, I always got "Segmentation fault". So what is wrong with try2
.cpp? why I can't use ifstream pointer? Thank you!
try1.cpp
#include
#include
#include
using namespace std;
int main()
{
ifstream gains("coeff.txt");
if (!gains.is_open())
{
cout<<"coeff.txt could not be opened! " < }
else{
cout<<"coeff.txt is open"< }
return
a********1
发帖数: 750
6
来自主题: Programming版 - g++编译了不该过的C++代码
你确定?我刚刚测试不过
chengyang:~$ g++ test.cpp
test.cpp: In member function ‘void D::f()’:
test.cpp:3: error: ‘int B::b’ is private
test.cpp:12: error: within this context
test.cpp: At global scope:
test.cpp:12: error: expected unqualified-id at end of input
chengyang:~$ g++ -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5664~105/src/configure --disable-checking
g*********s
发帖数: 1782
7
来自主题: Programming版 - protected/private inheritance
class D_pro2: public D_pro {
public:
virtual void g() { cout << "D_pro2::g()\n"; }
void h() { cout << B_protected << endl; }
//void j() { cout << B_private << endl; }
void k() { cout << B_public << endl; }
};
class D_pri2: public D_pri {
virtual void g() { cout << "D_pri2::g()\n"; }
void h() { cout << B_protected << endl; }
//void j() { cout << B_private << endl; }
void k() { cout << B_public << endl; }
};
access_control.cpp: In member function ‘void D_pri2::h()’:... 阅读全帖
N******K
发帖数: 10202
8
( in file a.cpp line 21)
shared_ptr sp1(new ClassXXX)
DEBUG_CODE(register(sp1.get(), "ClassXXX", "a.cpp", 21))
...
( in file b.cpp line 11)
shared_ptr sp2(new ClassXX)
DEBUG_CODE(register(sp2.get(), "ClassXX" "b.cpp", 11))
ClassXXX和ClassXX都继承一个基类 BaseClass
register(BaseClass*, std::string, std::string, long)
~BaseClass()
{
DEBUG_CODE(unregister(this);)
}
在main程序结束的时候
print_register_record() 如果这两个类没有被销毁 那么
unregistered class list
ClassXXX in a.cpp ,line 21
ClassXX in b.cpp ,line 11
大家看看 有啥问题么?
r******l
发帖数: 10760
9
来自主题: JobHunting版 - 问个C++的问题
这里人气比CS版旺多了,而且大多是CS的,所以发在这里请教一下高人。
两个class,a和b。由于互相有指针指向对方,所以在b.h里面include了a.h,但是a.h
里面只在开头写了一句class b;而没有include b.h(a.cpp里面include了b.h)。以前
这样用了很久都没问题,但是最近碰到一个问题:
class a里面有几个函数的参数用到template,所以这几个函数的declaration和
implementation都放到了a.h里面,而这几个函数里面也用到了指向class b的指针(比
如p_b->func1();)。结果这样的程序在Windows上用Visual Studio 2010里面编译连接
都没问题,但是在Mac上用xcode编译就报错,说什么用到了incomplete type(Linux下
面似乎也报同样的错)。
应该是因为在a.h里面放了函数的implementation导致的。尝试将implementation拿到a
.cpp里面,结果又link出错。网上搜了一下发现这种用到template的函数,做常见的做
法就是把impleme... 阅读全帖
r**u
发帖数: 1567
10
来自主题: JobHunting版 - static initialization dependency c++ (转载)
【 以下文字转载自 Programming 讨论区 】
发信人: raou (raou), 信区: Programming
标 题: static initialization dependency c++
发信站: BBS 未名空间站 (Wed Feb 6 13:38:35 2013, 美东)
Here's a common scenario: source file first.cpp define a static data member
of a class and provided an initializer for it. Source file second.cpp #
includes first.h and attempts to examine the value of the static data member
. When you execute that statement, the program crashes.The reason is the
compiler doesn't guarantee that C::i is initialized... 阅读全帖
C****c
发帖数: 9157
11
来自主题: PhotoGear版 - how to compile
main.cpp - main
interface.h - interface
implementation.cpp - implementation
g++ -c implementation.cpp
get implementaion.o
than
g++ main.cpp implementation.o
is that right?
already included interface.h in main.cpp
h**o
发帖数: 347
12
来自主题: Programming版 - template class instantiation问题
请问instantiation应该放在哪个文件中?
现在遇到的问题是
template class A
声明在 A.h
定义在 A.cpp
实例在 A.cpp
class B
声明在 B.h
定义在 B.cpp
B要用到A
class C
声明在 C.h
定义在 C.cpp
C要用到B
我想实例化 A< list >,这句应该放在哪里好
如果放在C.cpp中,gcc 好像ignore了。。。
x*****n
发帖数: 3422
13
来自主题: Programming版 - C++ implicit typename的问题
请看看哪里有问题?
// temp.cpp, test stl iterator
#include
#include
#include
using namespace std;
template void print(const set& mySet, const string& name)
{
set::const_iterator i;
}
int main()
{
}
// end of file
cygwin下g++ 3.4.4:
$ g++ temp.cpp
temp.cpp: In function `void print(const std::s
tor<_CharT> >&, const std::string&)':
temp.cpp:11: error: expected `;' before "i"
linux下g++ 3.2.3:
temp.cpp: In function `void print(const std::set,
I*******e
发帖数: 1879
14
☆─────────────────────────────────────☆
gandjmitbbs (Nothing) 于 (Sun Jun 14 13:29:18 2009, 美东) 提到:
我们的程序大概一开始设计的时候没有考虑到会成长到现在的规模,组织的不好。
现在abc.cpp里需要用到一个新的bool函数,这个函数内部涉及的数据结构在xyz.h里声
明,函数在xyz.cpp里实现。
按推荐流程是在xyz.h里加入函数原型,然后abc.cpp里本来就包含了xyz.h,所以直接
调用即可。这样很清晰。
但问题是,xyz.h被很多.cpp文件包含。如果这样改,所有这些文件都要重新编译,要
半个小时。
简单方法是不在xyz.h里包含这个新函数,而是直接把函数原型添加到abc.cpp里去,这
样重新编译链接,半分钟就够了。但这样,程序可读性确实变差了。
☆─────────────────────────────────────☆
gandjmitbbs (Nothing) 于 (Sun Jun 14 13:31:58 2009, 美东) 提到:
有什么更好的方
r*******y
发帖数: 1081
15
来自主题: Programming版 - namespace defined in another file
How to use a namespace defined in another file without include ?
for example:
//1.cpp
namespace cc{int i = 10;}
//2.cpp
#include
int main(){
std::cout << cc::i < }
then compile: g++ -o 2 2.cpp 1.cpp
but error: cc has not been defined.
which directive should be added in 2.cpp? for example "extern namespace cc".
I tried but failed too.
Thanks
s*****w
发帖数: 215
16
来自主题: Programming版 - C++怎样设置全局变量
问一个C++的初级问题
我在main.cpp的main函数里面call了一个function得到了一个值
我想用在别的cpp文件里,请问怎么做?
谁能写一点sample code?下面的code有问题吗?
main.cpp,
const char * myvalue;
Main(...)
{
myvalue=myFun();
}
在我的另外一个文件里面,比方说myfile.cpp
怎样使用这个myvalue这个variable呢?
myfile.cpp里面就一个方法:
Method(para.)
{
//请问在这里我怎样call到myvalue的值?
}
多谢!
c*******h
发帖数: 1096
17
来自主题: Programming版 - C和C++的复数
C和C++的复数好像不是很兼容。下面这个问题怎么办?
我有一个legacy.h,里面定义了一个dummy函数
#ifndef _LEGACY_
#define _LEGACY_
#include
void dummy(complex x);
#endif
用gcc是可以编译的
然后我写一个驱动器driver.c
#include
#include "legacy.h"
int main(void) {
complex c = 4.0;
dummy(c);
return 0;
}
gcc也是能编译的
然而我把driver.c改成driver.cpp,g++编译就不通过了,说
In file included from driver.cpp:2:0:
legacy.h:4:20: error: ISO C++ forbids declaration of 'x' with no type [-
fpermissive]
driver.cpp: In function 'int main()':
driver.cpp:4:11: e... 阅读全帖
r**u
发帖数: 1567
18
来自主题: Programming版 - static initialization dependency c++
Here's a common scenario: source file first.cpp define a static data member
of a class and provided an initializer for it. Source file second.cpp #
includes first.h and attempts to examine the value of the static data member
. When you execute that statement, the program crashes.The reason is the
compiler doesn't guarantee that C::i is initialized before it is referenced
in the second.cpp. Here is example:
//----first.h
class C
{
public:
static const int i;
};
//----first.cpp
#include "first.... 阅读全帖
y****n
发帖数: 15
19
来自主题: Programming版 - 请教一个关于std::function的问题
请大牛们帮忙看看这段代码,在编译的时候会有如下error message 请问如何能编译通
过啊?跪谢!
当然这只是个虚构的例子,主要是想在template存在的情况下,传递一个member
function的指针给另一个member function.
test1.cpp: In member function 'void Foo::testInt()':
test1.cpp:30:61: error: no matching function for call to 'Foo::processVector
(std::vector&, std::_Bind_helper std::_Placeholder<1>&>::type)'
processVector(arr, std::bind(&Foo::print, this, _1));
^
test1.c... 阅读全帖
r*******y
发帖数: 1081
20
来自主题: JobHunting版 - c++ class definition
【 以下文字转载自 Programming 讨论区 】
发信人: romancity (山顶一枝草), 信区: Programming
标 题: c++ class definition
发信站: BBS 未名空间站 (Mon Mar 7 23:24:44 2011, 美东)
is this definition local to a file ? for example
// file 1.cpp
#include
using namespace std;
class mytest{
int i;
}
int main(){
return 0;
}
// file 2.cpp
#include
using namespace std;
class mytest{
int i;
}
Then I compile g++ -o 1 1.cpp 2.cpp
it is ok. So I just think that class definition should be
local t... 阅读全帖
c***2
发帖数: 838
21
your program seems fine. what compiler do you use?
I tried it with visual c++ 6.0:
c:\temp>cpp rstr.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
rstr.cpp
rstr.cpp(10) : warning C4508: 'main' : function should return a value; 'void
' return type assumed
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:rstr.exe
rstr.obj
Run [rstr]:
olle... 阅读全帖
q****x
发帖数: 7404
22
来自主题: JobHunting版 - c++ inline问题
下面这个例子,即使没有inline关键字,X::f()也必须inline,否则ODR违例?
这里的inline语法上必须有,但编译器还是可以处理成普通函数,还是说必须inline?
// class_X.h
#include
using namespace std;
class X {
public:
void f();
};
void X::f()
{
cout << "X::f()" << endl;
}
//class_X1.cpp
#include "class_X.h"
void f()
{
X x;
x.f();
}
// class_X2.cpp
#include "class_X.h"
int main()
{
X x;
x.f();
f();
}
g++ class_X1.cpp class_X2.cpp
p****e
发帖数: 3548
23
来自主题: JobHunting版 - c++ namespace求指教 (转载)
src_mine/my_tree.cpp
src_tool/tool_tree.cpp
现在你不是两个tree类冲突么
对tool的那个tree.cpp你可以用
namespace tool{
#include"tool_tree.cpp"
}
所有那个文件的声明都会被包含在tool的namespace里面
要调用就用tool::tree
y*******s
发帖数: 157
24
来自主题: shopping版 - 怎样买X200便宜
cpp + ecoupon:USESAVEX7
cpp 的基础上再减7%
cpp 全部ecoupon
Go to lenovo.com/cpp
Password: familyandfriends
Coupons:
Save an additional 7% on ThinkPad X Series laptops and tablets with eCoupon
USESAVEX7 and 50% on select X Series memory and hard drive upgrades through
December 31.
Save an additional 5% on ThinkPad R Series and W Series laptops with eCoupon
USERANDW5 through December 31.
Save an additional 10% on T Series laptops with eCoupon USEANYT10 when you
spend up to $798.
Save an additional 1
d****e
发帖数: 99
25
p9500的cpu是天价(在cpp比T9600贵$89.25),还独立显卡,WXGA+ LED, cpp 850搞不定。
他这个配置cpp coupon前 税前的价格大概是1197.65。就是在免税州也要等30%off才能到850以下。半个月前cpp只有15%off coupon吧.
p9500很贵的证据:
http://shop.lenovo.com/SEUILibrary/controller/e/web/LenovoPortal/en_US/systemconfig.runtime.workflow:LoadRuntimeTree?sb=:00000025:000019C4:&smid=EC3A24B73CCE493BB1C514421A9BB0B7
o*****g
发帖数: 317
26
其实比cpp spp便宜或者差不多。不要忘了,3年质保. 3年保在cpp值100左右吧。(dell
的3年保那
是很黑的,联想还厚道)
有的时候3年保很救命的。
加了3年保之后,同样的硬件,cpp没价格优势。(WSCA/NASPO的升级配件价格低,几乎
就是成本价。)
当然,AMEX卡延长cpp的一年保,对一般人说也够了。2年就该换机器了。
l**n
发帖数: 7272
27
来自主题: PhotoGear版 - how to compile
g++ implementation.cpp main.cpp
change output executable file name:
g++ implementation.cpp main.cpp -o cynric.out
z****e
发帖数: 54598
28
i really dont think so
if u truely understand the jee system
u will find there r so many things which r not included in the cpp field
like EJB or JVM
could u tell me the counterpart of EJB in cpp related field?
have u ever heard of enterprise cpp bean? no
did u know what the cpp server page is? no, there is no such thing
JVM is a part of java and EJB is the derivative of java
all these derivatives r required for those java programmers
thats why java is a really difficult to learn since u have to
R*******y
发帖数: 19
29
我的makefile文件如下:
main.o : main.cpp sim.h
g++ -c main.cpp
我的main.cpp里包含sim.h,而sim.h里又包含了另一个头文件“macro.h”。如果我改
动了macro.h,makefile不会认为sim.h本身有任何改动,所以就不会更新main.o。我后
来在makefile文件中加了一句关联性:
sim.h : macro.h
结果没有变化:修改macro.h后,make时仍然认为没有任何文件被改动过。我觉得这是
因为虽然我加了sim.h对macro.h的关联性,但下面并没有执行什么语句,所以sim.h没
被update(比如修改文件更新日期什么的),因此上面的g++也就不会被触发。
我知道一个存在的替代方案是:main.o : main.cpp sim.h macro.h,但这貌似不是一
种很有效的作法,因为这意味着你在写关联时,还要找到内部的层层关联,特别地,如
果这只“关联链”有N级,这N级文件你都得写在第一级文件的关联中……
我平时一般只用Visual C++这样现成的IDE,在Linux下自己写makef
s*******y
发帖数: 558
30
来自主题: Programming版 - Help C++ Template function link error .
For .Net, you can't include .cpp in .h.
Just put template definition and implementation together
in the same file and name it as .hpp (means header and cpp),
and then include this .hpp in ur other .cpp file.
Under Linux or Cygwin, u can separate the declaration and
implementation of template. But u have to include .cpp of
the template in .h. For example, to declare a template class
myTemplate.H
#ifndef MY_TEMPLATE_
#define MY_TEMPLATE_
temaplate
class example{
...
};
#include "myTempla
b**********r
发帖数: 22
31
来自主题: Programming版 - 问个习惯问题
我老板说,一个文件(比如.cpp)如果超过200行就不容易读懂,所以他建议我
写程序的时候尽量写成多个子程序,基本上每个子程序都是一个独立的文件。
因为我在程序里用到了类,我以前都是一个类用两个文件,一个.h一个.cpp。可是
这个类里有好多function,这样子一个.cpp文件不可能限制在200行以内。请问
这个时候有没有什么办法把这个类的若干个function写到若干个.cpp文件里?
谢谢。
T***B
发帖数: 137
32
来自主题: Programming版 - An interesting C++ compile error
When I compile the following code with g++, I got following error:
g++ tt.cpp
tt.cpp: In static member function `static void Derived::test()':
tt.cpp:36: no matching function for call to `Derived::foo(int)'
tt.cpp:23: candidates are: virtual int Derived::foo(int, int)
Seems the compiler doesn't try to look for the foo with 2 paras in the base
class if there is one foo method available in derived class. Any reason
compiler chooses to do this this way. How to make this thing work (elegantly
)?
Tha
r*****l
发帖数: 2859
33
来自主题: Programming版 - 问一个link的问题
我不是做c/c++的。但是工作需要build code。Make说找不到libstdc++.so.5。
哪位帮忙看一下,谢谢。
Makefile:
*******************************************
DIR=.
CXX=g++
CXXFLAGS=-g -O -Wall
LDLIBS=-L$(DIR) -Wl,-rpath,$(DIR)
all: oldsample newsample
oldsample: oldsample.cpp libaddr.h
$(CXX) $(CXXFLAGS) oldsample.cpp -o $@ $(LDLIBS) -laddr -lpthread
newsample: newsample.cpp mdAddr.h mdEnums.h
$(CXX) $(CXXFLAGS) newsample.cpp -o $@ $(LDLIBS) -lmdAddr -lpthread
clean:
$(RM) ???sample
******************
r*********r
发帖数: 3195
34
来自主题: Programming版 - 关于C++ STL编译的疑问
write a program junk.cpp with ONE line:
#include
and compile it with the -E option,
the output is what the real compiler sees:
g++ -E junk.cpp > tmp.cpp
in the file tmp.cpp, you'll see vector's declaration and definition,
it's about 2,000 lines.
s*******e
发帖数: 664
35
来自主题: Programming版 - [合集] 问个很初级的问题
☆─────────────────────────────────────☆
PaulPierce (Paul) 于 (Mon Aug 31 16:51:16 2009, 美东) 提到:
我优点糊涂了,搞不清楚:
关于static const,下面程序有static怎么可以通过 compile.
不过如果我const去掉,就通不过,很正常。const难道可以把static作用取消?
比如我有三个file a.h, a.cpp, main.cpp
//a.h
extern const int i;
//a.cpp
#include "a.h"
static const int i = 3;
//main.cpp
#include "a.h"
int main()
{
return i;
}
☆─────────────────────────────────────☆
SuperString (小芝麻他爹) 于 (Mon Aug 31 16:59:56 2009, 美东) 提到:
without const
you have two conflicting ve
k*******d
发帖数: 1340
36
来自主题: Programming版 - 基础问题:在header里面define function
我知道一般情况下都是在header里面declare function, 在cpp里面define
function,inline function 和 function template要放在header里面。
不过我最近写一个程序,把class definition以及member function的definition都放在
header里面,有一些member function不是function template ,有一些是function
template,结果link的时候出现错误,说那些不是function template的function "already
defined in"某另外一个obj文件,这个情况是在我一个project(VC 2008)里面有多个cpp文件的
时候出现的。刚写完这个class的时候我用了个简短的测试程序,那时候整个project还只有一个cpp
文件,就没有出现这个错误。而我把这些member function definition移到cpp文件里面去link
的错误就没了。
另外,在另一个header里面我还定义了个non-membe
j****i
发帖数: 305
37
来自主题: Programming版 - C++ func overload question
#include
using namespace std;
class A
{
public:
void f(int) {cout << "FINT\n";}
void f(int, double j = 0) {cout << "FINTDOUBLE\n";}
};
main()
{
A a;
// a.f(3);
}
Without the commented line, the program compiles; with it, it reports error:
a.cpp: In function 'int main()':
a.cpp:14: error: call of overloaded 'f(int)' is ambiguous
a.cpp:7: note: candidates are: void A::f(int)
a.cpp:8: note: void A::f(int, double)
How to resolve this? And how
P********e
发帖数: 2610
38
比如我有一个project a, 我有2个文件 debug.cpp, release.cpp
debug mode下面compile debug.cpp, 不包括relesae.cpp
g*********s
发帖数: 1782
39
来自主题: Programming版 - in-class static member question
The following code has compilation errors if "-DDEBUG" is not specified.
In function `StripePainter::init_tab(std::basic_string std::char_traits, std::allocator >)':
inclass_static.cpp:(.text+0xb): undefined reference to
`StripePainter::colorset'
inclass_static.cpp:(.text+0x1b): undefined reference to
`StripePainter::orig_color'
inclass_static.cpp:(.text+0x23): undefined reference to
`StripePainter::colorset'
inclass_static.cpp:(.text+0x58): undefined reference to
`StripePainte... 阅读全帖
g*********s
发帖数: 1782
40
来自主题: Programming版 - in-class static member question
sorry, i'm more confused.
1. the initializer should go with declaration or definition, or it
doesn't matter?
it's ok to have:
a.cpp: int x = 0; // definition.
b.cpp: extern int x; // declaration.
but is it ok to have the following?
a.cpp: int x; // definition.
b.cpp: extern int x = 0; // declaration.
2. why definition of a static variable in a class violates the ODR?
because we can define a static integral variable in a class, it seems
not a problem to allow any static variable to be defined in ... 阅读全帖
g*********s
发帖数: 1782
41
来自主题: Programming版 - 经典题atoi的溢出处理 (转载)
this is my solution casting an unsigned int to an int. but gcc gives me
warning:
string_api.cpp: In function ‘bool overflow(unsigned int, bool, char)’:
string_api.cpp:330: warning: integer overflow in expression
string_api.cpp: In function ‘int str2int(const char*)’:
string_api.cpp:346: warning: integer overflow in expression
explict type casting can fix the warning. but i don't like this solution
very much. anyone has a better alternative?
static
bool overflow(unsigned int val, bool negative, c... 阅读全帖
r*******y
发帖数: 1081
42
来自主题: Programming版 - c++ class definition
is this definition local to a file ? for example
// file 1.cpp
#include
using namespace std;
class mytest{
int i;
}
int main(){
return 0;
}
// file 2.cpp
#include
using namespace std;
class mytest{
int i;
}
Then I compile g++ -o 1 1.cpp 2.cpp
it is ok. So I just think that class definition should be
local to the file, or otherwise there should be
multidefinition error in this example, right ? Thanks.
r*******y
发帖数: 1081
43
来自主题: Programming版 - c++ class definition
but the example below is not ok.
//1.cpp
int i;
int main(){
return 0;
}
//2.cpp
int i;
if I compile g++ -o 1 1.cpp 2.cpp, then I will get a
redfinition error? here int i is also an external linkage.
What is the difference between th definition of a class and
an interger here? thanks.
r****t
发帖数: 10904
44
来自主题: Programming版 - c++ class definition
But the linking works even when I made two definition of class to be
different:
//1.cpp
#include
using namespace std;
class mytest{
int i;
};
int main(){
return 0;
}
//2.cpp
#include
using namespace std;
class mytest{
float a1;
float a2;
};
$ g++ -o a.out 1.cpp 2.cpp
这个跟 standard 3.2.5 说的不一样 (each definition of D shall consist of the
same sequence of tokens;) 这个是仲么回事?
p***o
发帖数: 1252
45
来自主题: Programming版 - c++ does not check const for extern variable?
I got a linking error:
>cl 1.cpp 2.cpp /EHsc
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80
x86
Copyright (C) Microsoft Corporation. All rights reserved.
1.cpp
2.cpp
Generating Code...
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:1.exe
1.obj
2.obj
2.obj : error LNK2019: unresolved external symbol "int i" (?i@@3HA) referenc
ed in function _main
1.exe : fatal error LNK1120: 1 unresolved extern... 阅读全帖
h********n
发帖数: 1671
46
来自主题: Programming版 - C++中如何引用模板类中的模板函数
这个例子中,模板类B中引用了模板类A的模板函数f(),但是gcc无法识别这个用法。
template< typename T >
struct A
{
template< typename U >
int f (){ return 0; }
};
template< typename T >
struct B
{
A< T > a; // error
//A a; // ok
int g (){ return a.f< char >(); }
};
int main()
{
B< int > b;
return b.g();
}
U:\tmp\test.cpp: In member function 'int B::g()':
U:\tmp\test.cpp:15:31: error: expected primary-expression before 'char'
U:\tmp\test.cpp:15:31: error: expected ';' before ... 阅读全帖
q****x
发帖数: 7404
47
来自主题: Programming版 - c++ inline问题 (转载)
【 以下文字转载自 JobHunting 讨论区 】
发信人: quantx (X矿工), 信区: JobHunting
标 题: Re: c++ inline问题
发信站: BBS 未名空间站 (Tue Dec 6 01:53:26 2011, 美东)
下面这个例子,即使没有inline关键字,X::f()也必须inline,否则ODR违例?
这里的inline语法上必须有,但编译器还是可以处理成普通函数,还是说必须inline?
// class_X.h
#include
using namespace std;
class X {
public:
void f();
};
void X::f()
{
cout << "X::f()" << endl;
}
//class_X1.cpp
#include "class_X.h"
void f()
{
X x;
x.f();
}
// class_X2.cpp
#include "class_X.h"
int main()
{
X x;
x.f();
f();
}
g++ cla... 阅读全帖
y***d
发帖数: 2330
48
来自主题: Programming版 - 震惊:java 的矩阵操作比 c++ 快?
Don't forget -ffast-math...
java allsum=1.8658666E16
real 0m9.719s
g++ -O3 test.cpp
c++ allsum=1.86587e+16
real 0m9.116s
g++ -O3 -ffast-math test.cpp
c++ allsum=1.86587e+16
real 0m6.029s
g++ -O3 -march=native -mtune=native -ffast-math test.cpp
c++ allsum=1.86587e+16
real 0m4.888s
g++ -O3 -march=native -mtune=native -ffast-math test.cpp -funsafe-math-
optimizations -funroll-loops -fprefetch-loop-arrays
c++ allsum=1.86587e+16
real 0m4.235s
y***d
发帖数: 2330
49
来自主题: Programming版 - 关于C++中 extern "C"的问题。
把 parser.c "放到我其他的C++程序中" 这个做法是不好的,应该是把 parser.h 包含
到其它 .c/.cpp 文件中,
而 parser() 的函数体可以在 .c 中,也可以在 .cpp 中,
1. in c
parser.h
#ifdef _cplusplus
extern "C"{
#endif
void parser();
...
and complie parser.c with gcc
2. in cpp
parser.h
void parser();
and compile parser.cpp with g++

libxml2,
L*******r
发帖数: 310
50
是新手,最近想编一个模拟三国杀的游戏低端版本的程序来练练手。
刚开工不久就遇到一个问题:
之前已经建了一个关于牌的各种属性的class
然后在main.cpp里 创建一组这个card属性的常数数组。也就是建好了两幅牌。
今天想再建一个关于游戏选手的class 时,就遇到一个问题不知到怎么解
决了:
当class wujiang 里面想调用那两副牌的数据时没法调用到的(因为数据只在main.cpp
里,wujiang.cpp里面没定义这样的数组),所以肯定通不过编译。
板上各位高手能否指点下,如何解决这个问题?
我的想法是不把常数数组建立在main.cpp里,可否根据原来的创建一个存放这
个常数数组的文件(存放两幅牌的文件),然后创建class wujiang时能引用一下这个
文件?
这个是否可行,如何操作?
谢谢
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)