C++ :: Hide Class Implementations Using Headers?

Oct 16, 2013

I am currently working on data abstraction. I was able to write a class (a simple clock, see Malik's C++ book, Chapter 12 for reference). As you can imagine, I am quite new to programming and C++.

Well, now I created a header file clock.h that includes the class definition and function prototypes as well as a implementation.cpp file with the implementation details of the class.

I managed to include all this in my program.cpp and compile it (using dev c++). Everything works exactly as I want it to.

So now my question is, how can I create ... I am not sure how it is called ... a header, but without revealing to the user how the functions are implemented. Basically the user should get a file (the object code of the header + implementation.cpp?) and simply #include it into his own program.

So instead of giving the original header + implementation.cpp to the user I want to hide how my class does its stuff and instead just provide some file that can be included and then used in a program (I will write a documentation how to use the class).

I am not sure how all this is called, I am sure there is some name for it...

View 4 Replies


ADVERTISEMENT

C++ :: Using Typedefs To Abstract Multiple Implementations

Jan 12, 2014

I am writing a program that aims to be cross-platform, so it supports multiple low-level implementations for certain operations. My initial approach is to write an abstract class to use as an interface, and inherit from that when writing specific implementations.

However, I realized that the specific implementation that I will be using is known at compile-time, and I to not need any polymorphic behaviour. I realized that I could just write this:

Code:
class Impl1 {};
#ifdef USING_IMPL1
typedef Impl1 Interf;
#endif

Clients would then go on using the Interf type, regardless of the underlying implementation. The only drawback that I can see is that my Implementation classes are not forced to conform to an interface, but the compiler will tell me anyway if I try to use, in my client code, a method that is not defined.

View 3 Replies View Related

C++ :: Consistent Random Numbers Across Implementations

Mar 5, 2014

If I seed with the same seed I want the same sequence of numbers no matter if I use GCC, Clang, VC++ or Windows, Linux, Mac. I think this is guaranteed by the standard engines in <random>.

I also want to be able to save the state of engines and restore them in a program compiled with a different compiler. I have been under the impression that the stream operators for the standard engines did not guarantee this kind of compatibility across implementations but after looking a bit closer I think it should work, assuming obvious stuff like CHAR_BIT == 8 and that the same character set is used.

When it comes to distributions like std::uniform_int_distribution and std::geometric_distribution I don't think I can rely on a consistent behavior. It looks like the standard only say what probability density function they should have. It doesn't explain how exactly the output should be calculated from the number that the engine produce. For this reason I don't think I can use any of the distributions in the standard library if I want a consistent sequence of numbers everywhere.

So am I correct that I can safely use the standard engines as long as I don't use the distributions? Or do I have to use a library with a fixed implementation to guarantee this to work consistently across compiler implementations?

View 3 Replies View Related

C++ :: How To Hide Title Bar (not Borders)

Jan 29, 2015

How can I hide titlebar ( not borders ) ? And how can I have autohide with animation for Notebook like in Edit fiddle - JSFiddle ?

View 5 Replies View Related

C++ :: How To Hide Console Or Terminal

Jul 2, 2013

I want to hide a terminal appliction or console application without using WinAPI programming or <windows.h> or something like "ShowWindow(hwnd_win,SW_HIDE);

View 19 Replies View Related

C++ :: How To Hide Password Entered By User

Jul 28, 2014

I'm making a Project on a Travel Agency and I need to hide the password entered by the user! I am working on Xcode 5.1.1 -> Command Line Tools -> C++ on my MacBook Pro! Here is what I've tried --

string pass ="";
char ch;
cout << "Enter pass";
ch = getchar();
while(ch != 13){//character 13 is enter

[Code]...

But in the first case the display is -

//Assuming the password is Hello Hello ******

And in the second its giving me 3 errors -

1. Apple Mach-O Linker(Id) Error "_stdscr", referenced from:

2. Apple Mach-O Linker(Id) Error "_wgetch", referenced from:

3. Apple Mach-O Linker(Id) Error clang: error: linker command failed with exit code 1 (use -v to see invocation)

View 10 Replies View Related

C/C++ :: How To Write A Own Library And Hide Other Used Libraries

Aug 1, 2014

I want to write a small game library that uses GLFW.

So I have for example a window class that uses GLFW functions.

To do that my window class must include the GLFW header files.But I don't want, that if I use my library later and I include my window class, that all GLFW functions are included, too.

How I can prevent this and hide GLFW from users of this library completely, so they theoretical don't notice that this library use GLFW ?

And a second question, is it possible, if I export my game library statically that the GLFW lib files are hidden in my own lib files, so that I have finally only one lib file that is needed to use my library ?

View 4 Replies View Related

CLI :: Trying To Hide Then Show Main WinForm

Jun 18, 2014

I have a main WinForm that I want to press a hotkey and show and hide the form. I can press Insert and hide the form and I see its icon in my Win7 task bar but when I press Insert again it doesn't show. Is my coding logic wrong to make it work? Maybe when its hidden the Insert key isn't being 'seen'? Although the code I am using I got somewhere on the internet that says it will work at the app level.

virtual bool PreFilterMessage(Message% m) {
// Detect key down messages.
if (m.Msg == WM_KEYDOWN) {
Keys keyCode = (Keys)((int)m.WParam) & Keys::KeyCode;

[Code] ....

View 3 Replies View Related

C++ ::  Headers With Multiple CPP Files

Mar 22, 2013

So I have a rather large (for me) project, requiring me to have two .cpp files and a header. Anyway, both of the .cpp files #include the header file, but I recieve linker errors because the variables and functions in the header are declared and defined twice (once in each .cpp file). How am I supposed to do this?

View 8 Replies View Related

C++ :: Headers And Objects Files

May 20, 2013

I have a question regarding how GCC relates a header file and its binary file.

main.c
#include <math.h>
#include <stdio.h>
int main (void){
double x = sqrt (2.0);
printf ("The square root of 2.0 is %f
", x);
return 0;
}

we can compile it by running the line: gcc main.c -lm -o main

My question is: How GCC knows where is the definition of sqrt?

First I was thinking that there was and object file with the name math.o inside libm.a (that is GCC will look for an object file with the same name as the header file), but after running the next line I think my assumption was wrong as there is not such file in libm.a.

nm libm.a | grep math.o
nm: e_acos.o: no symbols
nm: k_cos.o: no symbols
nm: k_sin.o: no symbols

[Code] ....

View 7 Replies View Related

C++ :: Reading BMP Files Headers

Apr 19, 2013

Code:

struct magic {
char windowsheader[2];
} magicnumbers;
struct bmp {
unsigned int sizeofthefile;
short int applicationspecific1;

[Code] .....

When I run this program, seems like it is working,at least I am sure that it gives the right file size. But if I don't use struct magic and instead use:

Code:
struct bmp {
char windowsheader[2];
unsigned int sizeofthefile;
short int applicationspecific1;
short int applicationspecific2;
//same lines with above
} bitmap_header;

And if I don't use first fread:

Code:

fread(&magicnumbers,sizeof(magicnumbers),1,fp);

Then the values which structure "bmp"'s variables get become wrong. Of course I change the related printf to:

Code:
printf("
windowsheader:%d %d
",bitmap_header.windowsheader[0],bitmap_header.windowsheader[1]);

Why does the problem happen,what is the difference between them?Why do I have to use separate structs?

View 2 Replies View Related

C/C++ :: Write Headers For Member Functions

Mar 5, 2014

Assume a class named Dollars exists. Write the headers for member functions that overload the prefix and postfix ++ operators for that class.

View 1 Replies View Related

C++ :: How To Add Excel Library Or Include Headers

Jul 16, 2013

I want to read/write the excel sheet using C++. how to add the excel library or include the headers ?

Inot possible than is there any other way to work on Excel using C++.

View 4 Replies View Related

C :: Putting Functions / Headers In Separate Files?

Aug 2, 2013

I have just learned about how one can put functions and headers in different files from the main() function. I was wondering if there is a rule of thumb of when and when not to separate the two, or if it's merely preference. Is there perhaps an "industry standard" regarding this, for those who program in C for a living?

View 4 Replies View Related

C++ :: Testing HTTP Headers - For Loop And Strings

Jun 23, 2014

I am testing HTTP Headers and I have an strange problem. When I get the response of the server, it is the correct one the first time. If I use a for loop to send more than one request and get more than one response, this response seems to be overlapped with the previous ones. To a better explanation of the problem I attach the code I am using and the output generated:

TCPSocket.h
-----------
#ifndef _TCPSOCKET_H_
#define _TCPSOCKET_H_
class TCPSocket {
private:
int localSocket;

[Code] .....

So, a bigger loop, a bigger the response of the server. However, I know the response of the server is always the same.

View 3 Replies View Related

Visual C++ :: How To Configure Additional Include Headers

Jun 16, 2014

I want to include boost directory. What must be in the Additional Include Directories input?

I tried

C:C++boost_1_55_0libsaccumulatorsexample;$(BOOST_ROOT);%(AdditionalIncludeDirectories)

But I am still getting error "Cannot open include file: 'boost/libs/accumulators/lambda/lambda.hpp': No such file or directory" when I include

Code:
#include <boost/libs/accumulators/lambda/lambda.hpp>

The file is placed out side of boost directory of sure.

View 3 Replies View Related

C :: Function That Will Work For Both Dynamic And Static Implementations Of A Function To Get Transverse Of Matrix

Feb 11, 2013

i need a function that will work for both dynamic and static implementations of a function to get the transverse of a matrix. so far, i have this

Code:

matrix transpose(matrix m)
{
int row, col;
row = m.com_dim;
col= m.row_dim;
}

[code]....

this works well with my static implementation, but when i try it in dynamic it gives me errors. the function has to be the same for both dynamic and static implementation

View 4 Replies View Related

C :: Program To Hide Files Behind Other Files Using Alternate Data Streams

Apr 5, 2013

I am writing a program to hide files behind other files using Alternate Data Streams in Windows NTFS file systems.

The program is as follows:

Code:

#include <stdio.h>
#include <stdlib.h>
int main(void){
char hostfile[75], hiddenfile[75], hiddenFileName[15] ;
printf("Enter the name(with extension) and path of the file whose behind you want to hide another file: ");
scanf("%75s", hostfile);

[Code]...

The complier is showing error as "Extra Perimeter in call to system" but I am not getting where?

View 4 Replies View Related

C++ :: Instance Of Class A Vs Class B Derived From Class A

Jul 3, 2014

There are two ways to access the members of class A inside class B:

1) Making an instance of class A in class B
2) Deriving class B from class A

So what is the basic difference in both ways as we can do same kind of work with both ways?

View 1 Replies View Related

C++ :: How To Get Object Of Original Class From Function Of Other Class Where Other Class Object Is Member Of Original Class

Jan 21, 2013

The case is like

class B{
public:
somedata;
somefunction();
}
class A{
public:
data;
function();
}

in somefunction i want a pointer to current object of class A m new to c++

View 2 Replies View Related

C++ :: Calling Derived Class Functions In A Function With Parameter Of Base Class

Mar 30, 2013

Say I have 3 classes:

class Player {
public:
virtual func1();

[code]....

Say in my main class, I have a function fight(Player p1, Player p2) and I would like to do something like this in the fight function, given that p1 is the human and p2 is the computer:

//function fight()
fight(Player p1, Player p2) {
p1.func2();
}
//using function fight()
fight(human, computer);

When I compile the program, I got this: error: ‘class Player’ has no member named 'func2()' What can I do to allow p1 to call func2 inside fight()? I'm not allowed to use pointers as the parameter for fight() and have to use the signature fight(Player p1, Player p2).

View 6 Replies View Related

C++ :: Size Of Derived Class With Overriding Virtual Functions From Base Class?

Jan 21, 2014

The compiler creates virtual table for the base class and also for the derived class whether we override it or not.

That means each class has separate virtual table. when we get the size of the each class with out any data members... the size of base is -- 4 bytes(64 bit) and the size of derived is -- 1

The size of base class 4 is correct since it creates the virtual pointer internally and its size is member data + virtual pointer, but it in this case I have included any data members so it has given 4 byts.

But why in case of derived is 1 byte, since it the derived class has overridden the virtual function from base, this will also contains the virtual pointer which will be pointing to derived class Vtable, it the size of the class suppose to be 4 instead of 1 byte.

#include<iostream>
class A{
public:

[Code].....

View 1 Replies View Related

C++ :: Transfer Values Set In Privates Of Base Class By Object Of One Derived Class To Another

Apr 26, 2014

I have my main.cpp like this:

#include <iostream>
#include "curve1.h"
#include "curve2.h"
using namespace std;
int main() {
Curve1 curve1Obj;
Curve2 curve2Obj;

[Code]...

Base class Score has two derived classes Curve1 and Curve2. There are two curve() functions, one is in Curve1 and other in Curve2 classes. getSize() returns the value of iSize.

My base class header score.h looks like this:

#ifndef SCORE_H
#define SCORE_H
class Score {
private:
int *ipScore;
float fAverage;
int iSize;

[Code]...

You can see that I have used curve1Obj to enter scores, calculate average and output. So if I call getSize() function with cuve1Obj, it gives the right size that I took from user in enterScores() function. Also the result is same if I call getSize() in score.cpp definition file in any of the functions (obviously).
.....

The problem is when I call curve() function of Curve2 class in main (line 23) with the object curve2Obj, it creates a new set of ipScore, fAverage and iSize (i think?) with garbage values. So when I call getSize() in curve() definition in curve2.cpp, it outputs the garbage. .....

How can I cause it to return the old values that are set in curve1.cpp?

Here is my curve2.cpp

#include <iostream>
#include "curve2.h"
using namespace std;
void Curve2::curve() {
cout << "getSize() returns: " << getSize() << endl; // out comes the garbage
}

Can I use a function to simply put values from old to new variables? If yes then how?

View 3 Replies View Related

C++ :: How To Initialize Static Member Of Class With Template And Type Of Nested Class

Oct 7, 2014

How to initialize a static member of a class with template, which type is related to a nested class?

This code works (without nested class):

#include<iostream>
using namespace std;
struct B{
B(){cout<<"here"<<endl;}
};
template<typename Z>

[Code] ,....

View 1 Replies View Related

Visual C++ :: Reach Top Class Inherits From Goal Class - Linker Error

Dec 10, 2012

Linker error.

First off the error

Code:
Error1error LNK2019: unresolved external symbol "public: __thiscall ReachTop<class Character>::ReachTop<class Character>(class Character *)" (??0?$ReachTop@VCharacter@@@@QAE@PAVCharacter@@@Z) referenced in function "void __cdecl `dynamic initializer for 'gReachTop''(void)" (??__EgReachTop@@YAXXZ)Main.objDecisionTest

Reach Top class inherits from Goal Class

Goal Class

Code:
#ifndef _GOAL_H
#define _GOAL_H
#include "Action.h"
#include <list>
template <class T>
class Goal

[Code] ....

Code to create

Code:
Character* gCharacter = new Character(1, gWorld);
Goal<Character>* gReachTop = new ReachTop<Character>(gCharacter);

I can provide the character class and its inheritance aswell if you like.

View 4 Replies View Related

C++ :: Deleting Array Of Derived Class Objects Through Base Class Pointer

Mar 21, 2015

In this book, item 3 is about never treat arrays polymorphically. In the latter part of this item, the author talks about the result of deleting an array of derived class objects through a base class pointer is undefined. What does it mean? I have an example here,

Code:
class B
{
public:
B():_y(1){}
virtual ~B() {
cout<<"~B()"<<endl;

[Code] ....

This sample code does exactly what I want. So does the author mean the way I did is undefined?

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved