When to Use a Forward Declaration in C++

Priya Pallavi
Updated on 11-Feb-2020 10:43:13

255 Views

Forward declaration lets the code following the declaration know that there is are classes with the name Person. This satisfies the compiler when it sees these names used. Later the linker will find the definition of the classes. exampleClass Person; void myFunc(Person p1) {    // ... } Class Person {    // Class definition here };So in this case when compiler encounters myFunc, it'll know that its going to encounter this class somewhere down in the code. This can be used in cases where code using the class is placed/included before the code containing the class definition.

Why sizeof for a Struct is Not Equal to the Sum of Each Member in C/C++

Chandu yadav
Updated on 11-Feb-2020 10:37:42

285 Views

The difference between sizeof for a struct and the sum of sizeof of each member of that struct is due to byte padding and alignment. Every data type in C/C++ has a alignment requirement. A processor will have processing word length of its architecture. On a 32 bit machine, the processing word size will be 4 bytes or 32 bits. For example, If you have the struct −Example#include using namespace std; struct X {    char b[3];    int c; }; int main() {    char b[3];    int c;    int total = sizeof(b) + sizeof(c);    cout

Importance of SwingWorker Class in Java

raja
Updated on 11-Feb-2020 10:36:25

845 Views

A SwingWorker class enables us to perform an asynchronous task in a worker thread (such as a long-running task) then update Swing components from the Event Dispatch Thread (EDT) based on the task results. It was introduced in Java 1.6 Version.SwingWorker classThe java.swing.SwingWorker class is a task worker, which performs time-consuming tasks in the background.A SwingWorker instance interacts with 3 threads, Current thread, the Worker thread, and the Event Dispatch thread(EDT).The Current thread calls the execute() method to kick off the task to the background and returns immediately.The Worker thread executes our own version of the doInBackground() method continuously in the background.The Event Dispatch Thread (EDT) wakes up from time to ... Read More

What are Copy Elision and Return Value Optimization

Smita Kapse
Updated on 11-Feb-2020 10:36:03

577 Views

Copy elision is an optimization implemented by most compilers to prevent extra (potentially expensive) copies in certain situations. So if you have some code that is creating objects not being used or don't have side effects, examplestruct MyStruct {    MyStruct() {}    MyStruct(const MyStruct&) {       std::cout

Default Type of Hexadecimal Value in MySQL

Jai Janardhan
Updated on 11-Feb-2020 10:35:43

246 Views

As we know that in numeric contexts the hexadecimal values act like integers and in string contexts they act like binary string. It can be understood with the help of the following example,mysql> Select X'5455544F5249414C53504F494E54'; +---------------------------------+ | X'5455544F5249414C53504F494E54' | +---------------------------------+ | TUTORIALSPOINT                  | +---------------------------------+ 1 row in set (0.07 sec)But, if we are talking about default type of hexadecimal value in MySQL, then it is a string.

Use Arrays in C++

Srinivas Gorla
Updated on 11-Feb-2020 10:32:26

409 Views

An array is a series of elements of the same type placed in contiguous memory locations that can be individually referenced by adding an index to a unique identifier. To use an array in C++, you'll need to declare it first, for example, int arr[10];This declares an array of type int of size 10. This can store 10 integers in contiguous memory. To Refer to any of its element, you need to use the array access operator and provide it the index of the element you want to access. The indexing in C++ array start from 0. So in the ... Read More

Profile C++ Code Running in Linux

Vrundesha Joshi
Updated on 11-Feb-2020 10:28:25

1K+ Views

There are many great profiling tools for profiling C++ programs on Linux. The most widely used tool is Valgrind. It is a programming tool for memory debugging, memory leak detection, and profiling. You can use valgrind by passing the binary to it and setting the tool to callgrind. First generate the binary by compiling the program −$ g++ -o hello.cpp hello Now use valgrind to profile it: $ valgrind --tool=callgrind ./helloThis will generate a file called callgrind.out.x. You can read this file using a tool called kcachegrind.If you're using gcc, you can use the inbuilt profiling tool, gprof. You can ... Read More

Elegant Way to Iterate Words in a C++ String

Arjun Thakur
Updated on 11-Feb-2020 10:27:10

2K+ Views

There is no one elegant way to iterate the words of a C/C++ string. The most readable way could be termed as the most elegant for some while the most performant for others. I've listed 2 methods that you can use to achieve this. First way is using a stringstream to read words seperated by spaces. This is a little limited but does the task fairly well if you provide the proper checks. example#include #include #include using namespace std; int main() {     string str("Hello from the dark side");     string tmp;         ... Read More

Rules for Using Underscore in C++ Identifiers

Arjun Thakur
Updated on 11-Feb-2020 10:22:52

2K+ Views

From MSDN docs −Use of two sequential underscore characters ( __ ) at the beginning of an identifier, or a single leading underscore followed by a capital letter, is reserved for C++ implementations in all scopes. You should avoid using one leading underscore followed by a lowercase letter for names with file scope because of possible conflicts with current or future reserved identifiers.So you should avoid using names like −__foo, __FOO, _FOOAnd names like the following should not be used in the global namespace −_foo, _barOther than this, there are some more prefixes like LC_, SIG_, and suffixes like _t ... Read More

Access Local Variable Memory Outside Its Scope in C/C++

Rishi Rathor
Updated on 11-Feb-2020 10:20:27

218 Views

Let us look at an example where you MIGHT be able to access a local variable's memory outside its scope.Example#include int* foo() {    int x = 3;    return &x; } int main() {    int* address = foo();    cout

Advertisements