我的第一个C++类(和错误)
我试着从办公室里找到的一本书中选了一门幼稚的课 就是这样: #include <iostream.h> #include <math.h> const double ANG_RAD = 0.017; class Angulo { double valor; public: void act_valor( double ); double seno( void ); double coseno( void ); double tangente( v
我试着从办公室里找到的一本书中选了一门幼稚的课 就是这样: #include <iostream.h> #include <math.h> const double ANG_RAD = 0.017; class Angulo { double valor; public: void act_valor( double ); double seno( void ); double coseno( void ); double tangente( v
这可能吗?这个想法是输入一个密码,并在运行时将其转换为星号——非常类似于HTML上的密码字段。我已经编写了这段代码,但它在用户按enter键后转换输入,而不是在用户键入时 #include <stdio.h> #include <string.h> #include <iostream> int main() { char password[11]; int i, j; printf("Enter the password : ");
其他人告诉我,使用名称空间std;in代码是错误的,我应该直接使用std::cout和std::cin 为什么使用名称空间std;被认为是坏习惯?它是低效的还是有可能声明与std命名空间中的函数同名的不明确变量?它会影响性能吗?另一个原因是意外 如果我看到cout另一个原因是惊讶 如果我看到cout这与性能没有任何关系。但是考虑一下:你使用的两个库叫做Foo和Bar: using namespace foo; using namespace bar; 一切都很好,你们可以从Foo和Bar毫无问
我在initonceExecutionce WinAPI函数上有一个异常安全问题。无论何时从回调函数引发异常,都会发生死锁。Callback返回布尔标志,告诉调用者数据是否已成功初始化,但如果返回false,则无法重新显示异常,这不好。我试着用这种方法解决这个问题 try { InitOnceExecuteOnce(&flag, init_once_handler, &arguments, 0); } catch (...) { InitOnceInitializ
我觉得这很简单,但由于某种原因,我不明白发生了什么 当我运行代码的这一部分时,它将URL与数组中的字符串元素相结合,然后将其推送到字符串向量中,它成功地推送了第一个URL,但随后出现了某种内存泄漏?控制台无限循环胡言乱语 string anonlist[] = {"test1","test2","test3","test4","test5","test6","test7"}; for (int i=0; i<=7; i++) { vector<string> na
我有程序A(它是开源的,但我不能修改它的源代码),还有动态加载的DLL B 有没有办法使用DLL B在程序a中定义的函数 (可能会有帮助;程序A有很多.h头文件,我需要的所有函数都在这些文件中定义了extern。extern定义生成A.exe的链接器可以使用符号。要获取符号(函数、变量等)的地址,必须导出符号。这通常不适用于程序 如果程序A.exe未向您提供指针或获取函数指针的方法,则无法在DLL B中使用程序A.exe的函数 恶意攻击是可能的,尽管…外部程序定义生成A.exe的链接器可以使用该
我有一个protobuf的类层次结构,这些protobuf是序列化和反序列化的。现在,在运行时,我希望其中一个类包含我的类实例,该实例由我在C++中实现,包含了在运行时发现的一些装饰和缓存。 有没有办法只用普通的protobuf编译器来实现这一点 我想到的两个选项是为类的每个实例使用一个具有整数id的索引。由于性能受到影响,我希望避免出现这种情况。 另一个选项是使用外部脚本损坏生成的源文件。这相当难看,如果可能的话,我也希望避免这种情况。在运行时生成一个.proto来描述修饰过的消息,调用pro
我在实现四叉树时遇到问题 当四叉树中的对象移动时,我们必须更新该对象在四叉树中的位置。 我试图自己编写一个更新函数,但它不起作用。*(void UpdatePosition(QuadNode root,bool&OK)) 我的四叉树类如下: class QuadNode { public: vector<Object*> listObj; RECT* _rect; QuadNode* LT,*RT,*
有几个Gdiplus::Bitmap构造函数,我想使用的一个是BITMAPINFO结构和指向图像位的指针。我已经从一个钩子那里得到了这些信息,所以我甚至没有创建原始位图,它是给我的。但是位图上的压缩设置为JPEG,因此不容易解析,我不知道如何解析,或者想编写一个JPEG解压缩算法 以下是我试图利用GDI+库查看jpeg压缩图像中单个像素的代码: // lpbmi and lpBits come from a hooked StretchDIBits call. I did not generat
我想知道是否有任何可用的库可以隐藏依赖操作系统的LDAP客户端实现细节,比如JDBC的思想?该库还提供了基本的CRUD功能以及统一的SSL API,就像在Windows的wldap32中所做的那样 真的很感激 我想有一个跨平台的LDAP客户端,它有基本的CRUD功能和SSL启用选项。有什么建议吗?thanks@TadeuszA.Kad他写道他想要一个跨平台的库,有Mozilla LDAP SDK,它是跨平台的。
当我的链表为空时,我试图抛出一个EmptyListException,但是如果我取消对throw EmptyListException()的注释,程序将继续终止。 这是我的EmptyListException头 #ifndef EMPTYLISTEXCEPTION_H #define EMPTYLISTEXCEPTION_H #include <stdexcept> using std::out_of_range; class EmptyListException : public
我使用下面的代码在我的应用程序中实现了双缓冲。 在wards之后,我发现我的子窗口(即buttoms)没有像正常窗口那样设置动画,因此我将WS_EX_COMPOSITED添加到父窗口中,子窗口现在可以正确设置动画。但是,在添加WS_EX_COMPOSITED后,从我的资源创建的“我的菜单”为黑色,无法正确显示 那么,如何将双缓冲添加到我的顶部菜单 MainWinHwnd = CreateWindowEx(WS_EX_COMPOSITED, MainWinClassName, MainWinTit
我有一个类,DevicePointer,它封装了一个std::shared\u ptr。需要保存指向设备指针的各种类派生自DevicePointer。在我开始使用shared\u ptr之前,DevicePointer有一个::Expose()函数,该函数将返回指向设备的原始指针。现在我使用shared_ptr来保存设备指针,我不知道如何返回它。请注意,应该调用的唯一原因是取消对指针的引用 这就是原始曝光的样子: 并且会这样使用: 现在,MyDevice是一个std::shared\u ptr,
我一直在尝试将mongod链接到归档文件,而不是使用共享库。目前,我在将mongod链接到共享库方面没有问题,所以文件和所有东西都可以正常工作。但是,对于外部构建的静态库和归档文件,情况有所不同 这是我基本上想要做的。我有两个.a文件,比如lib1.a和lib2.a,我正在使用make生成这些文件。我试图通过修改SCons构建脚本(位于mongo/src/db中)将这两个归档文件静态链接到mongod。我希望看到的是这样的情况: g++ -o build/linux2/normal/mongo/
我正在做一个家庭作业,其中我有两个以两个动态字符数组的形式从用户那里获取输入,每个数组最多100个字符,并返回它们的总和 当两个数字长度不同或答案小于100位时,我正在努力找到一个正确的求和函数。当数字长度不同时,它们会像相同一样被添加,例如,100+1000变为1000+1000。当结果小于100位时,无论如何都会打印完整的数组,因此有几十个尾随零。编辑:已修复,请参见下文 我知道没有办法知道动态数组的实际大小,我也无法找出任何方法来放置某种哨兵值,阻止程序进一步处理。我不允许使用向量或传统数
C++代码由我审核,这样你就可以运行了 该程序的目的是读取两个浮点数组的输入元素,计算存储项的平均值,并找出第二个数组中有多少元素大于第一个数组 这是我的MIPS汇编代码: .data vect: .float .space 256 vect1: .float .space 256 vect2: .float .space 256 num1: .word .space 4 num2: .word .space 4 average: .float .space 4 numag: .word .sp
出于某种原因,在调用AddToBinarySearchTree后,会从~BinarySearchTreeNode析构函数引发异常。我认为这可能是因为节点本身在树被删除之前就被删除了,但我认为情况并非如此 为什么调用会删除m_left抛出以下异常 访问冲突读取位置0xfeeef2 int-tmain(int-argc,_-TCHAR*argv[] { void AddToBinarySearchTree(二进制搜索树bst,T值){ bst.Add(值); } void MyMethod(){ 二
睡眠(x)和时钟(t) 这两个人中哪一个更合适?我用时钟试过,如果我注意到1000个时钟滴答声似乎是一秒钟。是一直这样还是我只是幸运 如果可能的话,我想了解更多这方面的信息。如果您希望它能够便携使用,请使用标准库。我们有chrono和thread。这完全取决于您的用例,但是sleep(x)会阻止您当前的线程,这是您希望在服务器主处理循环中避免的。您需要多精确?如果第一次间隔为10毫秒,第二次间隔为14毫秒,第三次间隔为33毫秒,然后返回到10毫秒,这可以吗?还是需要非常一致?大多数操作系统都不是
我一直在试图找出函数GetAsyncKeyState的参数列表 我检查了谷歌和其他许多搜索结果页面,但找不到明确的答案 比如说 char t = 58; (Would be number 4) char y = 8; (Would be BACKSPACE key) 我之所以知道这些,是因为我可以使用循环来查询每个可能参数的函数 for(i = 0; i <= 500; i++) { if(GetAsyncKeyState(i) == -32767) {
这是相当标准的,效果很好: #include <set> auto cmp = [](int a, int b) { return a > b; }; using stype = std::set<int, decltype(cmp)>; stype mySet(cmp); #包括 自动cmp=[](INTA,INTB){返回a>b;}; 使用stype=std::set; stype-mySet(cmp); 但是为什么我不能这样做呢 #include &l
如何用文本制作大小可变的棋盘?我可以使用以下代码制作由单个字符组成的棋盘: #include <iostream> using namespace std; int main() { char C; int length; int width; int count = 0; int N; int row = 0; int col = 0; cout << "Input C" << endl;
如何获得alpha通道,在这种情况下,OpenCV中Mat矩阵中一个元素的[4]第四个元素 感谢您的帮助网络摄像头图像中没有alpha通道 也请使用OpenCV的C++ API,可尊敬的C一个是死胡同。< /P> < P>有可能从网络摄像头读取alpha通道吗? 与hsv颜色模型类似: 这是hueFarbton请不要把否决票看得太过个人化,但你的代码对noobs来说是一个坏例子,而且会永远持续下去
我希望能够做到以下几点: template <typename template_type> class awesome_class{ public: void some_function(void){ // if (template_type == type_a) cout << "I am of type_a and doing type_a specific methods"; // endif
Im使用Qt Creator 3.2.1。 使用Qt设计器,我进行了基本的设计:通过添加一个普通的QWidget并将其升级到我的自定义窗口,我向我的主窗口添加了一个自定义小部件(CustomWidget widget)。 在这个自定义小部件中,我添加了一个QGraphicsView(QGraphicsView视图) Qt Designer的对象浏览器正确显示项目的层次结构:小部件内的视图和主窗口内的小部件 但是,该表单生成的ui_mainwindow.h提供了: // in ui_mainwin
您需要使用inotifyapi
在matlab中,函数命令是 >> y = kalman01(z); 在C++中,我只知道这一个< /P> void kalman01(const double z[2], double y[2]) 那么我如何使用kalman01.cpp来传递输入以获得输出并显示输出y呢?您必须编写函数代码来对z数组执行操作以获得y数组。 函数的输入是一个数组z(声明为const,不能修改),以及一个数组y(包含在函数中执行的操作的结果)。 现在我写一个简单的例子: void kalman01(
我们知道,在函数模板重载解析之后,编译器应该从所选的基函数模板中选择最佳匹配专门化? 规则是什么?这是两个不同的模板 你想做的是 #include <iostream> using namespace std; template<typename T> void fun(T t) { cout << "match T" << endl; } template<> void fun(int const& t) {
假设CPU每秒可以处理10^8个操作。假设必须对包含10^6个元素的数组进行排序 插入排序和合并排序所用的时间是多少 想知道如何计算时间。给出的信息不足以准确回答问题 所花费的时间将取决于数据本身和算法的实现 当然,可以根据合理的假设作出估计 插入排序在^2上,因此需要按K1*10^12操作的顺序对数组进行排序,或K1*10^4秒。即使使用优化的实现,插入排序也可能需要几个小时 合并排序在*logn上,因此需要按照K2*10^6*6操作的顺序对数组进行排序,或者K2*6*10^-2秒。合并排序可
运行该程序的Windows用户帐户是计算机上的管理员。根据用户的说法,错误“刚刚开始发生” 同样,文件已创建,并且似乎具有正确的权限和所有权。文件是用fopen打开的,并用fwrite写入 为什么会发生错误? 这与集团政策有关吗? 我从哪里开始寻找 [更新日期:2015-01-28] 返回错误的代码: m_stream = fopen(m_sLogFile, m_sMode); if ( m_stream == NULL ) { dwErrorCode = ::GetLastError
我尝试使用QQmlComponent组件(view.engine(),QUrl::fromLocalFile(“MyItem.qml”);然后QOObject*object=component.create();但它给我的Qml组件还没有准备好。进一步尝试将statusChanged信号连接到插槽函数,但它似乎没有加载新的qml组件 QQuickView view; view.setSource(QUrl(QStringLiteral("qrc:/main.qml"))); QQmlCompon
当我运行这个程序时,它会产生错误[error]重载的“add(double,double,double)”调用是不明确的 为什么呢?我的意思是函数参数有不同的数据类型,这实际上是函数重载,那么为什么会出错呢 但是,当浮动被double替换时,它工作正常 #include<iostream> using namespace std; void add(){ cout<<"I am parameterless and return nothing";
我试图从.txt中搜索特定的ID/注册,并相应地显示相应的信息。在这种情况下,我希望根据应输入的相应注册号显示定价 读和写文件不是我的问题。网上有很多关于阅读和写作的信息,但根据ID/注册进行搜索和显示的信息不多 #include <iostream> #include <iomanip> #include <fstream> #include <cstdlib> #include <string> using namespace s
此->setTouchEnabled()已弃用 这说明了如何在V3中执行此操作,但现在似乎不推荐使用\u eventDispatcher 现在有人知道在cocos2dx中处理触摸的正确方法吗 编辑: 目前正在使用: auto listener = cocos2d::EventListenerTouchOneByOne::create(); listener->setSwallowTouches(true); listener->onTouchBegan = CC_CALLBACK_2
我试图使用std::acculate在操作符中写入std::ostream不要使用acculate,使用: std::ostream&operator因为您提到了每个也可以使用(提到acculate只是为了迷惑火星人): std::ostream&operator可以这样做: // Using accumulate std::ostream& out_acc(const std::vector<int>& is, std::ostream& out) {
当我在我的机器上编译DSVideoLib时,我刚刚注意到streams.h丢失了。 一个快速的研究给我指出了Windows SDK。 在再次安装windows sdk之后,我仍然无法在我的windows sdk文件夹中找到这些文件和文件夹 有人知道在windows 10上从何处获取DirectShow库吗 Streams.h和其他基类目录文件可以在\Samples\multimedia\directshow\BaseClasses中找到。看起来也是一个很好的快照 See还实际证明,从Window
我想使用OpenMP来并行化for循环(我以前也使用std::threads完成过,但那个解决方案相当难看),不过每次迭代时它的条件可能会改变。 下面是我的意思的例子: #pragma omp parallel for for(int i = 0; i < someVector.size(); i++) { . . . if(something) someVector.push_back(v); } #pragma omp parallel for 对于(int i=0;i
根据谷歌向新闻组展示的信息,最近一篇文章已经有将近一年的历史了,时间是2016年5月23日 差不多一周前我自己写了一篇文章,到目前为止还没有发表 与此同时,从今天起,新闻组仍在活跃地发布帖子 餐厅现在正式关门了吗?除了jotik在对我提出的相同问题的评论中提出的建议之外,还有其他替代品吗?: 从那里的答案来看,似乎*。由于审核框架失败,审核组通常是关闭的。不是堆栈溢出的问题。我投票关闭这个问题,因为它不是一个关于编程的问题。我认为这个问题可能符合程序员常用的软件工具范围为什么不问问COMP.La
基本上是的。C++11的大部分已经在VS2015中实现。C++14的大部分已经在VS2017中实现 完全?没有 微软C++编译器实现中仍然存在各种缺失特征(表达式sFANE)和bug。如果和何时遇到这些限制取决于您编写的代码的样式。您可以在或上进行检查 MSDN的屏幕截图: 请参见。企业每年的成本为数千美元。如果你需要询问陌生人,而不是你的经理,那就不适合你。考虑社区版,也可以使用。这两种编译器都可以在命令行上使用(或与某些工具一起使用)。您甚至可以安装并使用一些对开发人员友好的软件。你的工具推
操作系统:macOS 10.13.3 IDE:AndroidStudio 1.5.1 g++:4.2.1 场景: 我想用C++开发NDK。当我定义一个C++类来构建时,Gealle控制台返回如下错误: > src/main/jni/addcomputer.c:23:12: error: expected ';' after top level declarator jclass Test{ ^ ; 1 error generated. make:
因此,我假设我这样做的方式是错误的。是否有一种方法可以将fstream文件存储在堆栈中?我假设您希望将文本存储在堆栈上的文件中,而不是实际的fstream对象中?如果是这样,将文件内容存储为字符串会更容易 #include <iostream> #include <stack> #include <fstream> using namespace std; int main() { stack <fstream> webpages;
我需要创建一个对象数组,然后在每次调用objectB.function()时,将特定参数传递给StructA的构造函数。上面的代码工作得很好,除了内存泄漏,我无法消除它 我猜StructC析构函数只删除对象数组,而不是每个*新StructA(参数)。我尝试使用指针并稍微删除[],但得到的只是访问内存冲突错误。这是我能想到的唯一可行的方法。感谢所有帮助。正如您正确地假设的那样,内存泄漏是由于没有正确地使用相应的删除清除所有新而导致的。但是在习惯C++中,没有使用新< /COD>和删除< /C> >
我正试图解决一个学校的问题,我做到了,但如果可能的话,它应该运行得更快,占用更少的内存-你能帮我实现吗 问题陈述:从文件中读取自然数N和字符串,并在另一个文件中多次输出相同的字符串N 输入文件的示例: 3. 狗 输出文件的示例: 狗 狗 狗 限制: 1.≤ N≤ 50,并且要读取的行的长度最大为1000000 时限:0.27秒 这是我尝试过的,但运行时间超出了限制: 通常,当遇到此类问题时,您应该分析自己的代码,以查看代码的哪个部分占用了多少时间。这主要可以通过在代码执行前后向计时函数添加一些调
我正在为学校做一个项目,我们必须创建一个循环报价系统。我正在尝试获取代码,以提示用户询问是否要进行其他报价 如果用户输入“N”,则代码执行end program语句以及错误的响应语句。任何帮助都将不胜感激,代码在下面,输出在代码下面 if (runQuote = 'N' || 'n') { cout <<"Thank you for using this program. Goodbye. \n"; } else { " "; } if (runQuote != '
如何将新对象的向量传递给另一个对象的构造函数?在第13行中,我得到一个错误“没有匹配的函数用于调用'A::A()'”我想这是因为类关系中的元素现在是私有的,请尝试在任何声明之前添加public:。并在类声明后使用分号(;),以及在主函数中使用回车符。如下所示: class A { public: int value; A(int value){ this->value = value; } }; class Relation{ vector<
我的尝试: fipTag t; t.setType(FIDT_LONG); t.setKey("FrameTime"); long l = 128; t.setValue(&l); 据推测,这会将标记值设置为128长 然而 const long * lo = static_cast<const long*> ( t.getValue() ); cout << "t.getValue() " << *lo << " ?? doesn't l
根据我的研究,我发现AWS SDK CPP允许bucket 我需要在AWS EBS上具有相同的上载/下载权限 st1类型的卷,但我找不到任何关于它的示例或教程。有什么办法吗?我在非常大的文档中搜索未成功。EBS卷只能通过EC2实例访问。例如,与S3不同,它不是AWS提供的独立服务。这就是我的理解。没有API函数可以访问它。但有没有办法通过HTTP请求访问它?还是ssh?您只能通过附加到卷上的ec2实例访问卷
编辑: 我试图测量一个类实例的大小。 我正在测量一个包含数组的类的实例。无论数组大小如何,sizeof运算符都会返回24。我试图比较两种方法的两种类型的结构,并用第二种结构来报告大小节省,或者实际上比较哪种方法导致更大的大小。< P>没有一种通用的方法来获得C++中的对象的总内存使用,包括动态分配的内存。(考虑两个对象,它们都有指向同一第三个对象的指针。第三个对象是否应该计数两次?) 如果您希望跟踪应用程序中的内存使用情况,那么您可以覆盖运算符new和/或创建自己的分配器,以便与STL函数一起使
我正在做作业,却遇到了一个问题。如果我的“如果”有什么捷径,请告诉我 非常感谢你 取决于您对快捷方式的理解:如果您只想写更少的代码,您可以: if(strchr("aoyeuiAOYEUI", ch)) { /* ... */ } 但这只是隐藏了工作,实际上,还有更多的工作要做(检查有问题的字符和终止的空字符) 如果您考虑相反的方向,可以使用查找表: static int const Lookup[256] = { ['a'] = 1, ['o'] = 1, /* ... */ }; // v
现在我想用100个指定值初始化a。除了在a中键入a[I]=XXX,我们还有更优雅的方式吗?使用,例如: 这些特定值以什么形式存在?它们是可以加载的文件的一部分吗?它们需要硬编码吗?这些特定值有什么模式吗?对于硬编码的常量值,可以使用带括号的init list或构造函数的类内初始化。C++不包含反射。在初始化器列表中使用硬编码数组元素没有什么错。避免使用原始数组,而是使用诸如std::vector或std::array之类的容器。我明白了。听起来硬代码是唯一的选择。我问这个问题的原因是,当变量不在
我正在使用安装了OpenSSL版本1.0.2k和0.9.8e的RHEL7系统: $ ll /usr/lib64/libssl.so* lrwxrwxrwx 1 root root 16 Feb 28 19:32 /usr/lib64/libssl.so -> libssl.so.1.0.2k -rwxr-xr-x 1 root root 340832 Mar 4 2016 /usr/lib64/libssl.so.0.9.8e -rwxr-xr-x 1 root root