使用多重inheritance是一个好概念,还是我可以做其他事情?
我来自使用包的Java背景,而不是名称空间。 我习惯于把一起工作的类形成一个完整的对象到包中,然后在那个包之后重用它们。 但是现在我正在使用C ++。 你如何使用C ++的命名空间? 你是为整个应用程序创build一个单一的命名空间,还是为主要的组件创build命名空间? 如果是这样,你如何从其他命名空间中的类创build对象?
在我看来,有一个“总是返回5的函数”正在打破或淡化“调用函数”的含义。 必须有一个原因,或需要这个能力,否则它不会在C ++ 11中。 为什么呢? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife = 42; // constexpr-function: constexpr int MeaningOfLife () { return 42; } 在我看来,如果我写了一个返回一个字面值的函数,然后我开始进行代码审查,那么有人会告诉我,我应该声明一个常量值而不是写返回值5。
所以我经常发现我自己testing了一小段代码,看看哪个实现是最快的。 通常我会看到基准testing代码没有考虑到jitting或垃圾回收器的评论。 我有以下简单的基准function,我已经慢慢演变: static void Profile(string description, int iterations, Action func) { // warm up func(); // clean up GC.Collect(); var watch = new Stopwatch(); watch.Start(); for (int i = 0; i < iterations; i++) { func(); } watch.Stop(); Console.Write(description); Console.WriteLine(" Time Elapsed {0} ms", watch.ElapsedMilliseconds); } 用法: Profile("a descriptions", how_many_iterations_to_run, () => { // […]
我在Framework 3.5上使用C#。 我正在寻找快速sorting通用List<> 。 为了这个例子,我们可以说我有一个Persontypes的列表,其中包含一个lastname属性。 我将如何使用lambdaexpression式对此列表进行sorting? List<Person> people = PopulateList(); people.OrderBy(???? => ?????)
这是一个程序的基本代码,我正在编写的实践中使用C文件。我想检测输出文件是否已经存在,如果存在,我想问用户是否要覆盖它。 这是我第一次用fopen(outfilename,“r”)打开outfilename文件的原因。 而不是fopen(outfilename,“w”); 它检测到文件不存在的情况,但是,如果它存在,则执行printf(“输出文件已存在,覆盖(y / n):”); 语句,但完全忽略了scanf(“%c”,&yn); 声明! 如果文件不存在,程序结束时的printf读取“yn = 0”,如果存在,则只读取“yn =”。 有谁能够帮助我? #include <stdio.h> #include <stdlib.h> #include <float.h> #include <string.h> int main(void) { FILE *inf; FILE *outf; char filename[21],outfilename[21]; char yn='0'; printf("Please enter an input filename: "); scanf("%s",&filename); printf("Please enter an output filename: "); scanf("%s",&outfilename); /* Open file for reading */ inf=fopen (filename,"r"); outf=fopen(outfilename,"r"); […]
我花了一段时间才弄清楚为什么有些产量似乎消失在以太网中。 罪魁祸首: std::cout<< "This line shows up just fine" << std::endl; const char* some_string = a_function_that_returns_null(); if (some_string == 0) std::cout<< "Let's check the value of some_string: " << some_string << std::endl; std::cout<< "This line and any cout output afterwards will not show up" << std::endl; 上面代码片段的输出将是: This line shows up just fine Let's check […]
我已经调用了一个Api,并使用RestSharp收到了这个响应。 我无法控制Json响应的结构。 { "response": { "result": { "Leads": { "row": [ { "no": "1", "FL": [ { "val": "LEADID", "content": "101" }, { "val": "Company", "content": "Test 1" } ] }, { "no": "2", "FL": [ { "val": "LEADID", "content": "102" }, { "val": "Company", "content": "Test 2" } ] } ] } }, "uri": […]
我有两种forms。 首先, Form1有一个组框,一些标签和一个列表框。 我按下一个button,打开新的Form2并包含一些文本。 我想将Form2的文本转移到Form1的列表框中。 到目前为止,我所做的就是将listbox的修饰符公开 ,然后将这些代码放在Form2的button中 Form1 frm = new Form1(); frm.ListBox.items.Add(textBox.Text); 但令人惊讶的是,这并没有增加任何价值。 我以为我错误的插入,所以我做了相同的程序。 这一次,我公开了一个标签,并将TextBox的值添加到了它的Text属性中,但是失败了。 有任何想法吗?
我创build了两个获取模板参数的简单函数和一个定义types的空结构: //S<T>::type results in T& template <class T> struct S { typedef typename T& type; }; //Example 1: get one parameter by reference and return it by value template <class A> A temp(typename S<A>::type a1) { return a1; } //Example 2: get two parameters by reference, perform the sum and return it template <class A, […]